jeecg中上传附件的处理
来源:互联网 发布:健身 饮酒 知乎 编辑:程序博客网 时间:2024/05/23 16:55
在jeecg中如果用了formvalid标签来生成表单代码的话,是不能同时提交附件的,比如最常用的html标签 input type="file"是不能用的,后台接收不到附件,具体原因是因为jeecg中都是用ajax的方式来提交表单并且不支持附件的处理,如果要在表单中同时提交附件,只能使用jeecg的upload标签,并且附件的提交和表单其它参数的提交实际上是分两步来处理的,具体实现过程如下:
在需要上传附件的地方增加upload标签:
<t:upload name="fiels" id="file_upload" extend="txt" buttonText="添加文件" multi="false" formData="taskId" uploader="smTaskController.do?importTxt"> </t:upload>
其中比较主要的属性是formData和uploader,formData属性是在上传附件是要一起提交的表单参数,一般是传业务表的主键,uploader属性是具体的处理附件的提交路径
2.在fomrvalid标签中增加callback属性
<t:formvalid formid="formobj" dialog="true" layout="table" action="smTaskController.do?save" callback="@Override uploadFile">
3. 在页面顶部head之间增加相应的处理代码:
<script type="text/javascript"> $(function(){ //查看模式情况下,删除和上传附件功能禁止使用 if(location.href.indexOf("load=detail")!=-1){ $(".jeecgDetail").hide(); } }); function uploadFile(data){ $("#taskId").val(data.obj.id); if($(".uploadify-queue-item").length>0){ upload(); }else{ frameElement.api.opener.reloadTable(); frameElement.api.close(); } } function close(){ frameElement.api.close(); } </script>
其中最主要的就是uploadFile这个函数了,这边的主要逻揖就是获取业务表保存成功后返回的业务表的唯一标识设置在表单的隐藏属性当中,然后调用upload方法上传附件
4.最后在controller接收附件并处理,如下:
@RequestMapping(params = "importTxt", method = RequestMethod.POST)@ResponseBodypublic AjaxJson importTxt(HttpServletRequest request) {AjaxJson j = new AjaxJson();String taskId = request.getParameter("taskId");MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {try {this.smTaskService.saveFile(taskId, entity.getValue().getInputStream());message = "短信任务添加成功";} catch (IOException e1) {e1.printStackTrace();message = "短信任务添加失败";} finally {try {entity.getValue().getInputStream().close();} catch (IOException e) {e.printStackTrace();}}}j.setMsg(message);return j;}
其中要把HttpServletRequest参数强制转化为MultipartHttpServletRequest类型后再获取文件流进行处理,用springmvc中的@RequestParam MultipartFile参数直接获取附件是获取不到的,具体原因不是太清楚。
阅读全文
0 0
- jeecg中上传附件的处理
- jeecg中上传附件的处理
- JEECG表单附件的上传和下载
- web中上传附件的安全问题
- seam 中附件上传
- 处理多附件上传功能
- Mms中加入附件的处理
- 上传附件的实现
- 附件的上传
- Struts2的上传附件
- 上传附件的限制
- 修改在Windows2003中上传的附件大小的限制
- lotus附件中上传的图片的拿取方式
- ASP.NET中关于上传附件的大小设置问题
- PHP中上传大附件的编程攻略
- discuz中附件上传许可的修改方法
- ASP.NET中关于上传附件的大小设置问题
- 【discuzx3】编辑器中上传附件大小的限制
- 排序(大话数据结构阅读笔记)
- Linux单元小结(11)
- windows常用命令
- delphi读取.ini配置文件
- S12G128底层代码分析
- jeecg中上传附件的处理
- ByteArrayinputStream与ByteArrayOutputStream,printStream
- Python按位异或运算符^应用案例一则:查找只出现一次的数字
- Python编程一定要注意的那些“坑”(八):赋值运算符=
- Go语言项目Beego的学习
- 湖南跑胡子算法
- 实现maven管理的Javaweb项目的proguard代码混淆功能
- linux开机自动执行脚本
- VS2015中配置Pthread