代码规则:
1、保证action为很薄的一层,接收数据、传递数据,根据service的结果对前端进行结果反馈;
2、service层,能处理的异常进行处理,处理不了的不进行try cathch,直接往上层抛出,通过日志记录异常信息;
1、页面效果如下图所示:
2、jsp代码如下所示:
<div class="easyui-panel" 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" class="easyui-validatebox" required="true" type="file" missingMessage="请选择上传文件" /></td> </tr> </table> </form> </div> <div style="text-align:center;padding:5px"> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a> <a href="javascript:void(0)" class="easyui-linkbutton" 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); } }
相关推荐
jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0jeecg-framework-v2.0...
Jeecg-Boot是一款基于BPM的低代码平台,零代码开发!采用前后端分离架构: SpringBoot 2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码!!帮助Java项目解决...
JEECG 权限开发手册V3.7
JAVA编程有很多重复机械代码, 生成器可以帮助解决50%的重复工作,让开发更多关注业务逻辑, 从而实现代码生成+手工merge的半智能开发!JEECG智能框架可以有效解决信息孤岛问题,生成统一代码、统一规范、统一设计思路...
JEECG Boot Bpm流程在线开发操作能够手册,用于为学习jeecg boot的人提供一些参考资料来进行学习
jeecg-boot-master2.0.zip
JEECG v3.3.1.beta开发手册.zip
JEECG 开发文档系列 ——JEECG Online表单开发指南v3.7
JEECG 开发文档系列 ——JEECG 单点登录集成文档(kisso集成)
JEECG在线聊天插件附件 博文链接:https://jeecg.iteye.com/blog/2320670
jeecg_v3开发指南v3.3
jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志jeecg-framework-v3.1(精简版).zip升级日志...
Jeecg 开发文档系列 ——————Jeecg _v3.7表结构说明
JEECG 开发指南v3.6.pdf )
jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_...
jeecg代码上传
JEECG 开发指南v3.6,JEECG 权威开发指南,JEECG 开发指南
JEECG 开发指南v3.7.pdf
jeecg-lib上传
JEECG 开发文档系列 ——————JEECG 开发指南v3.7