JQuery和Struts如何实现Ajax文件上传-成都快上网建站

JQuery和Struts如何实现Ajax文件上传

这篇文章主要讲解了“JQuery和Struts如何实现Ajax文件上传”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JQuery和Struts如何实现Ajax文件上传”吧!

创新互联公司提供做网站、成都网站设计、网页设计,成都品牌网站建设一元广告等致力于企业网站建设与公司网站制作,十年的网站开发和建站经验,助力企业信息化建设,成功案例突破近千家,是您实现网站建设的好选择.

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

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

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

JSP页面:

<%@ page language="java"  pageEncoding="UTF-8"%> <%@ include file="../../common/taglibs.jsp" %>                  Ajax文件上传示例           #loading,ol{        font-size:14px;        display:none;        color:orange;        display:none;       }       ol{        display:block;       }           $(function(){          new AjaxUpload("#fileButton",{      action:"${basePath}/file.do?method=upload",      autoSubmit:true,      name:"myfile",      onSubmit:function(file, extension){       if (extension && /^(pdf|jpg|png|jpeg|gif)$/.test(extension))       {        $("#loading").html('');        $("#loading").show();        $("#fileButton").attr("disabled","disabled");       }       else       {        $("#loading").html("你所选择的文件不受系统支持");        $("#loading").show();        return false;       }      },      onComplete:function(file, extension){       $("#loading").html("文件上传成功");       $("#loading").show();       $("#fileButton").removeAttr("disabled");      }     });               new Ajax_upload('#button3', {      action: '${basePath}/file.do?method=upload',      name: 'myfile',      autoSubmit:true,      onComplete : function(file, extension){       $('
  • ').appendTo($('.files')).text(file);      }      });    });                         
         
                     

    上传成功的文件有:

          

             

             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文件上传”的内容了,经过本文的学习后,相信大家对JQuery和Struts如何实现Ajax文件上传这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


    分享标题:JQuery和Struts如何实现Ajax文件上传
    文章地址:http://kswjz.com/article/gossoi.html
    扫二维码与项目经理沟通

    我们在微信上24小时期待你的声音

    解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流