JEECG 通用文件上传

首先是提交的方式,和表单一起提交,继承附件实体。
然后是多文件上传,样式冲突,各种各样的问题。

这里给一个比较通用的文件上传方案,还是基于uploadify标签。但是绝对好用!


step.1
新建一个文件上传的jsp页面,作为通用上传。
路径:/webpage/system/upload/uploadView.jsp
代码:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <!DOCTYPE html >
  4. <html>
  5. <head>
  6. <t:base type="jquery,easyui,tools"></t:base>
  7. <script type="text/javascript">
  8.         function uploadSuccess(d,file,response){
  9.                 $("#fileUrl").val(d.attributes.url);
  10.                 $("#fileName").val(d.attributes.name);
  11.                 var url = $("#fileUrl").val();
  12.                 var html="";
  13.                 if(url.indexOf(".gif")!=-1 || 
  14.                                 url.indexOf(".jpg")!=-1        ||
  15.                                 url.indexOf(".png")!=-1 ||
  16.                                 url.indexOf(".bmp")!=-1){
  17.                         html += "<img src='"+url+"' width =400 height=300 />";
  18.                 }else{
  19.                         html += "<a href='"+url+"' target=_blank >下载:"+d.attributes.name+"</a>";
  20.                 }
  21.                 $("#fileShow").html(html);
  22.         }
  23.         function uploadCallback(callback){
  24.                 var url = $("#fileUrl").val();
  25.                 var name= $("#fileName").val();
  26.                 callback(url,name);
  27.                 
  28.         }
  29. </script>
  30. </head>
  31. <body style="overflow-y: hidden" scroll="no">
  32.   <table cellpadding="0" cellspacing="1" class="formtable">
  33.   <input id="documentTitle" type="hidden" name="documentTitle" value="blank"/>
  34.   <input id="fileUrl" type="hidden"/>
  35.   <input id="fileName" type="hidden"/>
  36.    <tbody>
  37.     <tr>
  38.      <td align="right">
  39.        <label class="Validform_label"></label>
  40.      </td>
  41.      <td class="value">
  42.       <t:upload name="instruction" dialog="false" multi="false" extend="pic" queueID="instructionfile" view="false" auto="true" uploader="systemController.do?saveFiles" onUploadSuccess="uploadSuccess"  id="instruction" formData="documentTitle"></t:upload>
  43.      </td>
  44.     </tr>
  45.     <tr>
  46.      <td colspan="2" id="instructionfile" class="value">
  47.      </td>
  48.     </tr>
  49.    </tbody>
  50.   </table>
  51.    <div id="fileShow" >
  52.   </div>
  53. </body>
  54. </html>
复制代码

step.2
写一个通用的js方法,来调用这个文件上传窗口
可以写入curdtools.js中

  1. function commonUpload(callback){
  2.          $.dialog({
  3.                         content: "url:systemController.do?commonUpload",
  4.                         lock : true,
  5.                         title:"文件上传",
  6.                         width:700,
  7.                         height: 400,
  8.                         parent:windowapi,
  9.                         cache:false,
  10.                     ok: function(){
  11.                             var iframe = this.iframe.contentWindow;
  12.                             iframe.uploadCallback(callback);
  13.                                 return true;
  14.                     },
  15.                     cancelVal: '关闭',
  16.                     cancel: function(){
  17.                     } 
  18.                 });
  19. }
复制代码

step.3
在/src/jeecg/system/controller/core/SystemController.java 中添加弹出页面跳转的方法

  1. /**
  2.          * 文件上传通用跳转
  3.          * 
  4.          * @param icon
  5.          * @param req
  6.          * @return
  7.          */
  8.         @RequestMapping(params = "commonUpload")
  9.         public ModelAndView commonUpload(HttpServletRequest req) {
  10.                 return new ModelAndView("system/upload/uploadView");
  11.         }
复制代码

这样就大功告成了!
使用时只需要:



QQ截图20131023152728.jpg 

function uploadTaxRegImgCallBack(url,name){
                $("#taxRegImgView").attr('src',url);
                $("#taxRegImg").val(url);
        }


页面展现:
QQ截图20131023152119.jpg 
选中文件后自动上传:
QQ截图20131023152130.jpg 
点击确定后调用“自定义的回调函数”:uploadTaxRegImgCallBack
这时文件上传后的url 就填充到页面的控件去了
QQ截图20131023152827.jpg

猜你喜欢

转载自zjfhw.iteye.com/blog/1982732