JQuery和Struts实现Ajax文件上传

首先说下使用的框架和插件:

创新互联公司专注于邻水网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供邻水营销型网站建设,邻水网站制作、邻水网页设计、邻水网站官网定制、成都小程序开发服务,打造邻水网络公司原创品牌,更为您提供邻水网站排名全网营销落地服务。

Struts1.3   jQuery1.3   ajaxupload.3.2.js(一个JQuery的插件,实现Ajax上传的效果)

COS(O’relly的一个性能很棒的上传组件)

JSP页面:

 
 
 
  1. <%@ page language="java"  pageEncoding="UTF-8"%> 
  2. <%@ include file="../../common/taglibs.jsp" %> 
  3.  
  4.  
  5.    
  6.     
  7.     
  8.     Ajax文件上传示例 
  9.      
  10.      #loading,ol{  
  11.       font-size:14px;  
  12.       display:none;  
  13.       color:orange;  
  14.       display:none;  
  15.      }  
  16.      ol{  
  17.       display:block;  
  18.      }  
  19.      
  20.   
  21.   $(function(){  
  22.      
  23.    new AjaxUpload("#fileButton",{  
  24.     action:"${basePath}/file.do?method=upload",  
  25.     autoSubmit:true,  
  26.     name:"myfile",  
  27.     onSubmit:function(file, extension){  
  28.      if (extension && /^(pdf|jpg|png|jpeg|gif)$/.test(extension))  
  29.      {  
  30.       $("#loading").html('');  
  31.       $("#loading").show();  
  32.       $("#fileButton").attr("disabled","disabled");  
  33.      }  
  34.      else  
  35.      {  
  36.       $("#loading").html("你所选择的文件不受系统支持");  
  37.       $("#loading").show();  
  38.       return false;  
  39.      }  
  40.     },  
  41.     onComplete:function(file, extension){  
  42.      $("#loading").html("文件上传成功");  
  43.      $("#loading").show();  
  44.      $("#fileButton").removeAttr("disabled");  
  45.     }  
  46.    });  
  47.      
  48.      
  49.    new Ajax_upload('#button3', {  
  50.     action: '${basePath}/file.do?method=upload',  
  51.     name: 'myfile',  
  52.     autoSubmit:true,  
  53.     onComplete : function(file, extension){  
  54.      $('
  55. ').appendTo($('.files')).text(file);  
  56.     }   
  57.    });  
  58.   });  
  59.   
  60.    
  61.     
  62.      
  63.      
  64.     
 
  •     
     
  •      
  •      
  •  
  •    
  •   

    上传成功的文件有:

     
  •    
  •   

     

  •       
  •   

     
  •  
  •   
  •  
  •    
  •  
  • StrutsAction代码:package com.kay.crm.web;  
  •  
  • import javax.servlet.http.HttpServletRequest;  
  • import javax.servlet.http.HttpServletResponse;  
  •  
  • import org.apache.struts.action.ActionForm;  
  • import org.apache.struts.action.ActionForward;  
  • import org.apache.struts.action.ActionMapping;  
  • import org.apache.struts.actions.DispatchAction;  
  • import org.springframework.stereotype.Controller;  
  •  
  • import com.kay.common.util.CosUtil;  
  •  
  • @Controller("/file")  
  • public class FileUploadAction extends DispatchAction {  
  •  
  •  public ActionForward upload(ActionMapping mapping, ActionForm form,  
  •    HttpServletRequest request, HttpServletResponse response) throws Exception {  
  •     
  •  
  •   String fileName = CosUtil.upload(request);  
  •   System.out.println(fileName);  
  •     
  •   return null;  
  •  }  
  • }Cos的工具类:package com.kay.common.util;  
  •  
  • import java.io.File;  
  • import java.io.IOException;  
  • import java.util.Enumeration;  
  •  
  • import javax.servlet.http.HttpServletRequest;  
  •  
  • import com.oreilly.servlet.MultipartRequest;  
  •  
  • public class CosUtil {  
  •  
  •  @SuppressWarnings({ "deprecation", "unchecked" })  
  •  public static String upload(HttpServletRequest request) throws IOException  
  •  {  
  •   //存绝对路径  
  •   //String filePath = "C://upload";  
  •   //存相对路径  
  •   String filePath = request.getRealPath("/")+"upload";  
  •   File uploadPath = new File(filePath);  
  •   //检查文件夹是否存在 不存在 创建一个  
  •   if(!uploadPath.exists())  
  •   {  
  •    uploadPath.mkdir();  
  •   }  
  •   //文件***容量 5M  
  •   int fileMaxSize = 5*1024*1024;  
  •    
  •   //文件名  
  •   String fileName = null;  
  •   //上传文件数  
  •   int fileCount = 0;  
  •   //重命名策略  
  •   RandomFileRenamePolicy rfrp=new RandomFileRenamePolicy();  
  •   //上传文件  
  •   MultipartRequest mulit = new MultipartRequest(request,filePath,fileMaxSize,"UTF-8",rfrp);  
  •     
  •   String userName = mulit.getParameter("userName");  
  •   System.out.println(userName);  
  •     
  •   Enumeration filesname = mulit.getFileNames();  
  •        while(filesname.hasMoreElements()){  
  •             String name = (String)filesname.nextElement();  
  •             fileName = mulit.getFilesystemName(name);  
  •             String contentType = mulit.getContentType(name);  
  •               
  •             if(fileName!=null){  
  •              fileCount++;  
  •             }  
  •             System.out.println("文件名:" + fileName);  
  •             System.out.println("文件类型: " + contentType);  
  •               
  •        }  
  •        System.out.println("共上传" + fileCount + "个文件!");  
  •          
  •        return fileName;  
  •  }  
  • }Cos上传组件用到的重命名策略类:package com.kay.common.util;  
  •  
  • import java.io.File;  
  • import java.util.Date;  
  •  
  • import com.oreilly.servlet.multipart.FileRenamePolicy;  
  •  
  • public class RandomFileRenamePolicy implements FileRenamePolicy {  
  •  
  •  public File rename(File file) {  
  •    String body="";  
  •       String ext="";  
  •       Date date = new Date();  
  •       int pot=file.getName().lastIndexOf(".");  
  •       if(pot!=-1){  
  •           body= date.getTime() +"";  
  •           ext=file.getName().substring(pot);  
  •       }else{  
  •           body=(new Date()).getTime()+"";  
  •           ext="";  
  •       }  
  •       String newName=body+ext;  
  •       file=new File(file.getParent(),newName);  
  •       return file;  
  •  
  •  }  
  • 文章标题:JQuery和Struts实现Ajax文件上传
    当前网址:http://www.mswzjz.com/qtweb/news8/187008.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

    猜你还喜欢下面的内容

    Google知识

    同城分类信息