jeecg v2.0 实现上传功能
?
代码规则:
1、保证action为很薄的一层,接收数据、传递数据,根据service的结果对前端进行结果反馈;
2、service层,能处理的异常进行处理,处理不了的不进行try cathch,直接往上层抛出,通过日志记录异常信息;
?
1、页面效果如下图所示:

?
2、jsp代码如下所示:
<div title="信息" style="width:400px"> <div style="padding:10px 0 10px 60px"> <form id="uploadForm" method="post" enctype="multipart/form-data" action="demoAction!upload.action"> <table> <tr><td>文件路径</td><td><input name="filedata" required="true" type="file" missingMessage="请选择上传文件" /></td></tr> </table> </form> </div> <div style="text-align:center;padding:5px"> <a href="javascript:void(0)" onclick="submitForm()">提交</a> <a href="javascript:void(0)" onclick="clearForm()">重置</a> </div> </div>
?
?
3、js代码如下所示:
function submitForm(){ //提交Form var myForm = $('#uploadForm').form({ url : 'demoAction!upload.action', success : function(data) { var json = $.parseJSON(data); if (json && json.success) { window.parent.window.messageshow('成功',json.msg); } else { window.parent.window.messageshow('失败','操作失败!'); } } }); if($('#uploadForm').form('validate')){ myForm.submit(); } } function clearForm(){ $('#uploadForm')[0].reset(); } ?4、action层实现如下:
// ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××// ×××××××××××××××××××××××××××文件上传×××××××××××××××××××××××// ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××//进入上传页面public String uploadInput(){return "upload-input";}//-----------------------上传文件---------------------------//浏览器传递过来的信息private File filedata;public File getFiledata() {return filedata;}public void setFiledata(File filedata) {this.filedata = filedata;}//上传文件public void upload(){Json j = new Json();try {demoService.upload(filedata);j.setSuccess(true);j.setMsg("文件上传成功!");} catch (Exception e) {j.setMsg("文件上传失败!");logger.error(ExceptionUtil.getExceptionMessage(e));}writeJson(j); }?
?
5、service层实现如下:
public void upload(File filedata) throws IOException { String destDir = "d:/upload"; MultiPartRequestWrapper mpRequest = (MultiPartRequestWrapper)ServletActionContext.getRequest(); File[] files = mpRequest.getFiles("filedata"); String[] fileNames = mpRequest.getFileNames("filedata"); for(int i=0;i<files.length;i++){ File destFile = new File(destDir+"/"+fileNames[i]); FileUtils.copyFile(files[i], destFile); }}?