JSP使用文件上传插件uploadify
2013-08-13 19:53
330 查看
在隔壁老王http://wallimn.iteye.com/blog/1663299的博客上看到使用这个插件的文章,手痒也跟着去官网下载个例子玩下,没想到最新版的API变了。。。
资源的下载地址猛击下载。。。PS:资源上传的JS没写好,在这已更正。
还是写出来跟大家一起学习下。
http://www.uploadify.com 官网
有三个文件是必须的jquery.uploadify.js,uploadify.css,uploadify.swf。本次实验是部署在myeclipse8.5下,需引入的JAR有三个commons.jar包:io、logging、fileupload。 可在tomcat的lib目录下找。
index.jsp的文件如下
其中变化较大的是上传文件的函数,为upload()。
具体的参数可看jquery.uploadify.js,里面有详细的API说明
注意有三个属性是必须在初始化的时候赋值的,API那也有说明。
具体参数可参考
API的说明很详细。
接下来是SERVLET的。
WEB.XML配置如下:
资源的下载地址猛击下载。。。PS:资源上传的JS没写好,在这已更正。
还是写出来跟大家一起学习下。
http://www.uploadify.com 官网
有三个文件是必须的jquery.uploadify.js,uploadify.css,uploadify.swf。本次实验是部署在myeclipse8.5下,需引入的JAR有三个commons.jar包:io、logging、fileupload。 可在tomcat的lib目录下找。
index.jsp的文件如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <script src="scripts/jquery.min.js" type="text/javascript"></script> <script src="uploadify/jquery.uploadify.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="uploadify/uploadify.css"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript"> $(document).ready( function() { $("#uploadify").uploadify( {//初始化函数 'swf' : 'uploadify/uploadify.swf', 'auto' : false,//true为自动上传 'uploader' : 'servlet/Upload', 'multi' : true, 'buttonText' : '浏览', 'simUploadLimit' : 8 }); }); </script> </head> <body> <div id="fileQueue"></div> <input type="file" name="uploadify" id="uploadify" /> <p> <a href="javascript:jQuery('#uploadify').uploadify('upload','*')">开始上传</a> <a href="javascript:jQuery('#uploadify').uploadify('cancel','*')">取消所有上传</a> </p> </body> </html>
其中变化较大的是上传文件的函数,为upload()。
具体的参数可看jquery.uploadify.js,里面有详细的API说明
注意有三个属性是必须在初始化的时候赋值的,API那也有说明。
具体参数可参考
API的说明很详细。
接下来是SERVLET的。
package com.zcb.servlet; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * * @author zhengchubin * */ @SuppressWarnings("serial") public class Upload extends HttpServlet { @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String savePath = this.getServletConfig().getServletContext() .getRealPath(""); savePath = savePath + "/uploads/"; File f1 = new File(savePath); System.out.println(savePath); if (!f1.exists()) { f1.mkdirs(); } DiskFileItemFactory fac = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(fac); upload.setHeaderEncoding("utf-8"); List fileList = null; try { fileList = upload.parseRequest(request); } catch (FileUploadException ex) { return; } Iterator<FileItem> it = fileList.iterator(); String name = ""; String extName = ""; while (it.hasNext()) { FileItem item = it.next(); if (!item.isFormField()) { name = item.getName(); long size = item.getSize(); String type = item.getContentType(); System.out.println(size + " " + type); if (name == null || name.trim().equals("")) { continue; } //扩展名格式: if (name.lastIndexOf(".") >= 0) { extName = name.substring(name.lastIndexOf(".")); } File file = null; //用于判断生成的文件名是否已经存在 do { //生成文件名: name = UUID.randomUUID().toString(); file = new File(savePath + name + extName); } while (file.exists()); File saveFile = new File(savePath + name + extName); try { item.write(saveFile); } catch (Exception e) { e.printStackTrace(); } } } response.getWriter().print(name + extName); } }
WEB.XML配置如下:
<servlet> <servlet-name>upload</servlet-name> <servlet-class>com.zcb.servlet.Upload</servlet-class> </servlet> <servlet-mapping> <servlet-name>upload</servlet-name> <url-pattern>/servlet/Upload</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
相关文章推荐
- Jsp中Uploadify插件的使用(jQuery上传插件)
- 使用jquery的uploadify插件跨域上传文件
- jQuery文件上传插件Uploadify使用指南
- 大文件上传Jquery 插件Uploadify-v2.1.4使用图解
- struts2框架下使用uploadify3.2文件上传插件
- 使用uploadify3.2插件(flash版)上传文件
- 使用Uploadify插件上传文件(兼容火狐)
- 大文件上传Jquery 插件Uploadify-v2.1.4使用图解
- 使用uploadify插件进行多文件上传时如何传递表单参数
- 最近做文件上传,使用了jQuery-uploadify插件,用的是官网最新的3.2版本,官网地址:http://www.uploadify.com/download/ 在这里建议下:在面对最新的版
- 上传文件插件 Uploadify使用说明
- 使用jquery插件uploadify结合commons fileupload实现多文件上传
- Ajax 无刷新上传文件插件 uploadify 的使用
- jQuery文件上传插件Uploadify使用指南
- sae storage 使用uploadify插件进行文件批量上传
- 使用jquery上传插件uploadify上传多文件(附jQuery Uploadify教程及手册)
- Jfinal+DWZ使用uploadify插件实现文件上传
- 基于jquery的上传插件Uploadify 3.1.1在MVC3中的使用:上传大文件的IO Error问题
- jquery使用uploadify插件实现多文件的上传(java版)
- 上传文件插件 Uploadify使用说明 转