struts2 +jquey uploadify3.2 实现多文件上传,可预览、删除、排序

6 篇文章 0 订阅
本文介绍了一种结合jQuery和uploadify插件实现网页中图片上传功能的方法,并实现了图片列表的拖拽排序功能。具体展示了如何配置uploadify参数、处理上传错误及成功响应、以及如何通过AJAX提交已上传图片的URL。
摘要由CSDN通过智能技术生成


js 代码

  1. <script type="text/javascript">  
  2.   
  3.       $(function() {  
  4.           $( "#pics" ).sortable();  
  5.           //$( ".wraps" ).disableSelection();  
  6.             $("#uploadFile").uploadify({  
  7.                 height        : 30,  
  8.                 swf           : '${baseURL}/themes/default/images/uploadify.swf',  
  9.                 uploader      : '${baseURL}/movieMan/movieManAction!upload.action?savePath=upload',  
  10.                 width         : 120,  
  11.                 fileObjName:'uploadify',  
  12.                 'auto' : false,  
  13.                 'buttonText'     : '选择文件' ,  
  14.                 'multi': true,  
  15.                  'queueID'  : 'some_file_queue',  
  16.                 //允许上传的文件后缀  
  17.                     'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png',  
  18.                     //上传文件的大小限制  
  19.                     'fileSizeLimit':'1MB',  
  20.                     //上传数量  
  21.                     'queueSizeLimit' : 5,  
  22.                  'onUploadSuccess' : function(file, data, response) {  
  23.                      //$.parseJSON(json)  
  24.                      // alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);  
  25.                      var html = "<li><div style='position: relative;'> <img src=${baseURL}/"+data+" name='mvUrl' width='100px' height='80px' class='myimg'/><div class='del ui-icon-closethick ui-icon' >删除</div></div></li>";  
  26.                      $("#pics").append(html);  
  27.                     },  
  28.                     'onFallback':function(){  
  29.                         alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");  
  30.                     },  
  31.                     onSelectError:function(file, errorCode, errorMsg){  
  32.   
  33.                         switch(errorCode) {  
  34.   
  35.                             case -100:  
  36.   
  37.                                 alert("上传的文件数量已经超出系统限制的"+$('#uploadFile').uploadify('settings','queueSizeLimit')+"个文件!");  
  38.   
  39.                                 break;  
  40.   
  41.                             case -110:  
  42.   
  43.                                 alert("文件 ["+file.name+"] 大小超出系统限制的"+$('#uploadFile').uploadify('settings','fileSizeLimit')+"大小!");  
  44.   
  45.                                 break;  
  46.   
  47.                             case -120:  
  48.   
  49.                                 alert("文件 ["+file.name+"] 大小异常!");  
  50.   
  51.                                 break;  
  52.   
  53.                             case -130:  
  54.   
  55.                                 alert("文件 ["+file.name+"] 类型不正确!");  
  56.   
  57.                                 break;  
  58.   
  59.                         }  
  60.   
  61.                     }  
  62.             });  
  63.               
  64.           
  65.             $(".del").die().live('click',function(){  
  66.                 $(this).parent().parent().remove();  
  67.             });  
  68.             $(".preview").live({ mouseenter: function () {  
  69.                 var src = $(this).parent().find("input").val();  
  70.                 src = "${baseURL}/"+src;  
  71.                 $("#testimg").attr("src",src);  
  72.                 var left = $(this).position().left;  
  73.                 var top = $(this).position().top;  
  74.                 $("#imgf").css({left:left,top:top});  
  75.                 $("#imgf").show();            
  76.             }, mouseleave: function () {  
  77.                 $("#imgf").hide();       
  78.             }  
  79.         });  
  80.         });  
  81.         
  82.     function dosubmint(){  
  83.          $(".mvurl").remove();  
  84.          $(".myimg").each(function(){  
  85.             var     d=$(this).attr("src");  
  86.             d = d.replace('${baseURL}/',"");  
  87.             d = "<input type='hidden' name='mvUrl' class='mvurl' value="+d+">";  
  88.             $("#form1").append(d);  
  89.         });  
  90.          $("#form1").ajaxSubmit({    
  91.              type: 'post',    
  92.              dataType: 'json',   
  93.              success: function(data){    
  94.                  alert(data.desc);    
  95.              },    
  96.              error: function(XmlHttpRequest, textStatus, errorThrown){    
  97.                  alert( "error");    
  98.              }    
  99.          });     
  100.     }  
  101. </script>  


html 代码

  1. body {  
  2.     font-size: 12px;  
  3. }  
  4.   
  5. .wraps {  
  6.     clear: both;   
  7. }  
  8.   
  9. .wraps input {  
  10.     width: 300px  
  11. }  
  12.   
  13. .preview,.del {  
  14.     cursor: pointer;  
  15.     text-indent: -99999px;  
  16.     float: left;  
  17.     margin-left: 20px  
  18. }  
  19. .del{position: absolute;top: 0;right: 0;background-color: white;}  
  20. ul li{list-style: none}  
  21. #pics{padding: 10px;border: 1px solid #ccc;height: 200px}  
  22. #pics li{float: left;display: block;width: 100px;height: 80px;padding: 2px;border: 1px solid #ccc; margin: 10px;}  
  23. </style>  
  24. <body>  
  25.     <div id="some_file_queue"></div>  
  26.     <div id="imgf" style="display: none; position: absolute; z-index: 9999">  
  27.         <img id="testimg">  
  28.     </div>  
  29.     <input type="file" name="uploadifys" id="uploadFile" />  
  30.     <br />  
  31.     <form action="${baseURL}/movieMan/movieManAction!savepics.action?id=${param.id}&fileUrlType=0" id="form1"  dataSrc="${baseURL}/movieMan/movieManAction!getPics.action?id=${param.id}&fileUrlType=0">  
  32.       
  33.     <ul id="pics" >  
  34.     <!--   
  35.         <li class='wraps' name="list"&gt;<input type='text' name='mvUrl'  style='float: left;' /><span class='preview ui-icon ui-icon-newwin' >预览</span><span class='del ui-icon-closethick ui-icon'>删除</span></li&gt; 
  36.     -->  
  37.     <li name="list">  
  38.         <div style="position: relative;">  
  39.             <img src="${baseURL }/" name="mvUrl" width="100px" height="80px" class="myimg"/>  
  40.             <div class='del ui-icon-closethick ui-icon' style="position: absolute;top: 0;right: 0;background-color: white;">删除</div>  
  41.         </div>  
  42.     </li>  
  43.       
  44.     </ul>  
  45.     </form>  
  46.     <div style="clear: both;margin-top: 20px">  
  47.   
  48.         <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" onclick="javascript:$('#uploadFile').uploadify('upload','*')">  
  49.             <span class="ui-button-icon-primary ui-icon ui-icon-play"></span> <span class="ui-button-text">开始上传</span>  
  50.         </button>  
  51.   
  52.         <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" onclick="javascript:$('#uploadFile').uploadify('cancel','*')">  
  53.             <span class="ui-button-icon-primary ui-icon ui-icon-cancel"></span> <span class="ui-button-text">取消上传</span>  
  54.         </button>  
  55.   
  56.         <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" onclick="dosubmint()">  
  57.             <span class="ui-button-icon-primary ui-icon ui-icon-locked"></span> <span class="ui-button-text">保存提交</span>  
  58.         </button>  
  59.     </div>  
  60.       
  61.   
  62. </body>  

struts action 代码
  1. private List<File> uploadify;  //对应js里面的fileObjName,而不是input type ="text" 里面的name值  
  2. private List<String> uploadifyFileName;   
  3. private String savePath;//文件上传后保存的路径  
  4. private List<String> mvUrl;  
  5. private Integer fileUrlType;  
以上属性需提供geter,setter 方法
  1. public void upload() throws Exception {    
  2.         File dir=new File(getSavePath());    
  3.         if(!dir.exists()){    
  4.             dir.mkdirs();    
  5.         }    
  6.         List<String> mfiles = new ArrayList<String>();  
  7.         for(int i=0;i<uploadify.size();i++){  
  8.             String fileName = DateUtil.format(new Date(), "yyyyMMddHHmmss")+"_"+uploadifyFileName.get(i);  
  9.              String dest = getSavePath()+"/"+fileName;  
  10.             FileUtils.copyFile(uploadify.get(i), new File(dest));  
  11.             mfiles.add(savePath+"/"+fileName);  
  12.         }  
  13.         HttpServletResponse response = ServletActionContext.getResponse();  
  14.         response.setCharacterEncoding("utf-8");  
  15.         PrintWriter out = response.getWriter();  
  16.         out.write(mfiles.get(0));  
  17.         out.close();  
  18.         out.flush();  
  19.     }    



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值