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