JQuery和Struts实现Ajax文件上传
来源:互联网 发布:网络优化 编辑:程序博客网 时间:2024/05/18 22:17
首先说下使用的框架和插件:
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" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <script type="text/javascript" src="${basePath }/script/jquery.js"></script> <script type="text/javascript" src="${basePath }/script/ajaxupload.3.2.js"></script> <title>Ajax文件上传示例</title> <style type="text/css"> #loading,ol{ font-size:14px; display:none; color:orange; display:none; } ol{ display:block; } </style><script type="text/javascript">$(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('<img src="${basePath}/images/loading.gif">');$("#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){$('<li></li>').appendTo($('.files')).text(file);}});});</script> </head> <body> <input type="button" value="请选择您的照片" id="fileButton"/> <div id="loading"><img src="${basePath}/images/loading.gif"></div> <hr/> <form action="#" method="post"><input id="button3" type="file" /><p>上传成功的文件有:</p><ol class="files"></ol><p><input class="submit" type="submit" value="表单提交"/></p></form> </body></html>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();}//文件最大容量 5Mint 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+ajax+struts实现文件上传
- ajax和struts配合实现判断文件是否上传成功
- jquery实现ajax文件上传
- jquery AJAX 实现文件上传
- Ajax 和 jQuery 实现进度条+上传文件到Django
- 如何实现jQuery的Ajax文件上传
- jquery插件AjaxFileUpload实现ajax文件上传
- jQuery+php实现ajax文件即时上传
- 如何实现jQuery的Ajax文件上传
- 如何实现jQuery的Ajax文件上传
- 如何实现jQuery的Ajax文件上传
- jQuery插件AjaxFileUpload实现ajax文件上传
- jQuery插件AjaxFileUpload实现ajax文件上传
- jQuery插件AjaxFileUpload实现ajax文件上传
- jQuery 插件AjaxFileUpload 实现ajax文件上传
- jQuery插件AjaxFileUpload实现ajax文件上传
- 自因为成立的oracle between and 查询语句
- C++读取BMP图像
- log4j 使用
- Android开发实战记录(三)---HelloWorld
- 网站中为什么js要形成一个文件
- JQuery和Struts实现Ajax文件上传
- onInterceptTouchEvent和onTouchEvent调用时序
- ipanel笔记----DVB基础知识-----PSI/SI
- CAS研究(四)-登出/logout
- NKOJ 1137 石子合并问题 (区间dp)
- 操作XML以及签名实例
- vi, vi
- Trie树|字典树(字符串排序)
- 波司登电子商务平台