jeecg中上传附件的处理
来源:互联网 发布:微量网 知乎 编辑:程序博客网 时间:2024/05/18 13:27
在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参数直接获取附件是获取不到的,具体原因不是太清楚。
阅读全文
1 0
- jeecg中上传附件的处理
- jeecg中上传附件的处理
- JEECG表单附件的上传和下载
- web中上传附件的安全问题
- seam 中附件上传
- 处理多附件上传功能
- Mms中加入附件的处理
- 上传附件的实现
- 附件的上传
- Struts2的上传附件
- 上传附件的限制
- 修改在Windows2003中上传的附件大小的限制
- lotus附件中上传的图片的拿取方式
- ASP.NET中关于上传附件的大小设置问题
- PHP中上传大附件的编程攻略
- discuz中附件上传许可的修改方法
- ASP.NET中关于上传附件的大小设置问题
- 【discuzx3】编辑器中上传附件大小的限制
- 数据的归一化
- 51nod 1105 第K大的数 (二分套二分 好题)
- poj 3070 Fibonacci
- 一行 Shell 通过 Nginx access 日志实时统计单台机器QPS
- android java 接口回调
- jeecg中上传附件的处理
- 扩展vim遇到的问题-windows与linux的文件格式问题
- python学习教程
- 0基础lua学习(六)控制语句
- 初步了解在线测试系统
- 程序和软件的不同
- C函数加密实现及常用字符串处理函数的使用
- [BZOJ1064][Noi2008]假面舞会(图论)
- opencv双目测距实现