zoukankan      html  css  js  c++  java
  • Struts2 + uploadify 多文件上传完整的例子!

    首先,我这里使用的是  Jquery  Uploadify3.2版本号


         导入相关的CSS  JS   

    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css">
         <script src="<%=basePath%>js/jquery.min.js"></script>

         <script src="<%=basePath%>js/uploadify/jquery.uploadify.min.js"></script>


    接下来是  上传的 JSP 页面代码

    <form action="" method="post" >
        	<input type="file" name="img_file" id="img_file">
        		<div id="uploadfileQueue" ></div>
        		<div id="imgs" ></div>
        		<div id="dialog-message" ></div>
        </form>
       
        
         <p>  
            <a href="javascript:void(0);" onclick="myUpload()">上传</a>
            <a href="javascript:$('#img_file').uploadify('cancel')">取消上传</a>  
        </p>  


    这里是最关键的 JS  代码  有凝视

    $(function(){
        		$("#img_file").uploadify({
        			  auto:false,//是否自己主动上传
    				  height: 30,  
                 	  buttonText:'选择图片',
    			      cancelImage:'<%=basePath%>img/uploadify/uploadify-cancel.png',
     				  swf : '<%=basePath %>js/uploadify/uploadify.swf',
     			 	// expressInstall:'js/uploadify/expressInstall.swf',
      				 uploader : '<%=basePath%>json/fileUploadAction.action', //后台处理上传文件的action 
     				 width  : 120 ,
        	         'multi': true, //设置为true将同意多文件上传 
        	         'filesSelected': '4',
        	         queueID:'uploadfileQueue',
    				 fileObjName:'img_file', //与后台Action中file属性一样
                      /*
                      formData:{ //附带值       
    								'userid':'111',
    								'username':'tom', 
    							   'rnd':'111'
    							},
                                    */
                    fileTypeDesc:'上传文件支持的文件格式:jpg,jpge,gif,png',
    				fileTypeExts:'*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png
    				queueSizeLimit : 4,//仅仅能一次上传4张图片 
    				// simUploadLimit:1,//一次能够上传1个文件
    				fileSizeLimit:'2097152',//上传文件最大值   单位为字节   2M
                         //返回一个错误。选择文件的时候触发
    				onSelectError:function(file, errorCode, errorMsg){
    					
    						 switch(errorCode) {
    								case -100:
                                      alert("上传的文件数量已经超出系统限制的4个文件!

    "); break; case -110: alert("文件 ["+file.name+"] 大小超出系统限制的2M大小。"); break; case -120: alert("文件 ["+file.name+"] 大小异常!

    "); break; case -130: alert("文件 ["+file.name+"] 类型不对!"); break; } }, // //上传到server,server返回对应信息到data里 onUploadSuccess:function(file, data, response){ var objs = eval('('+data+')'); var phtml = "<span><img style='150;height:150' src='/uploads/"+objs.filename+"'></span>"; if($("#imgs span").length==0){ $("#imgs").html(phtml); }else{ $("#imgs span:last").after(phtml); } }, onSelect : function(file) { //alert(file.name); }, //removeCompleted:true,//上传的文件进度条是否消失 requeueErrors:false, // removeTimeout:2,//进度条消失的时间。默觉得3 progressData:"percentage",//显示上传的百分比 onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) { //这里是取消的时候发生 // $("#dialog-message").html(errorString); } }); }); //上传文件 function myUpload(){ $("#img_file").uploadify('upload','*'); }



    java  上传的 Action 代码

    /**
     * 上传文件的Action
     * @author wzh
     *
     */
    @Controller
    @Scope("prototype")
    public class FileUploadAction extends BaseAction {
    	private File  img_file;
    	 private String img_fileContentType;//格式同上"fileName"+ContentType  
    	 private String img_fileFileName;//格式同上"fileName"+FileName  
    	 private String savePath;//文件上传后保存的路径
    	 private Map<String, Object> dataMap = new HashMap<String, Object>();
    	
    	@Override
    	/***
    	 *  上传文件
    	 */
    	public String execute() throws Exception{
    		
    		System.out.println("savePath"+getSavePath());
    		
    		 File dir=new File(getSavePath());  
    		 System.out.println(dir.getAbsolutePath());
    		 
    		 //推断是否存在路径
    	        if(!dir.exists()){  
    	            dir.mkdirs();  
    	        }  
    	        	
    	        //当前上传的文件
    	        	File file=getImg_file();
    	        	//获得后缀
    	        	String  ext =FileUtil.getExtensionName(getImg_fileFileName()); 
    	        	String  newFileName = UUID.randomUUID()+ext;
    	            FileOutputStream fos=new FileOutputStream(getSavePath()+"//"+newFileName);  
    	            FileInputStream fis=new FileInputStream(getImg_file());  
    	            byte []buffers=new byte[1024];  
    	            int len=0;  
    	            while((len=fis.read(buffers))!=-1){  
    	                fos.write(buffers,0,len);  
    	            }   
    
    	            fos.close();
    	            fis.close();
    
    	          //  String uploadFileName = getImg_fileFileName();
    	            dataMap.put("filename",newFileName);
     
    		return SUCCESS;
    	}
    


    <!-- 文件上传相关的 -->
    		 <action name="fileUploadAction" class="fileUploadAction">
           		 <param name="savePath">E:/Tomcat6.0/webapps/uploads</param> 
           		<result type="json">
    				<param name="root">dataMap</param>
    			</result>
           </action>


    配置完以上的 基本就OK了   有什么不懂的能够评论问问。我会回复




    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    Java学习-060-Springboot
    PySe-013-指定安装源安装模块 + 修改安装源
    Linux-016-Centos Shell 遍历文本信息,通过流水号批量获取日志信息并保存结果
    Linux-015-Centos mysql 创建用户、数据库、授权、建表、数据插入
    Linux-014-Centos 开放端口 3306
    Linux-013-Centos mysql 5.6.50 修改字符集为 utf8
    Linux-012-Centos mysql 5.6.50 忘记密码,重置密码
    Linux-011-Centos 使用 yum 安装 mysql 5.6.50
    Linux-010-Centos 使用 yum 安装 pip
    Linux-009-Centos 安装 YUM
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4640978.html
Copyright © 2011-2022 走看看