一、下载最新版的uploadify
http://www.uploadify.com/download/
二、将压缩包解压,复制
uploadify.css
uploadify.swf
swfobjects.js
jquery.uploadify.v2.1.0.min.js
cancel.png
jquery-1.3.2.min.js
default.css到项目中。
三、在项目中添加三个jar包
commons-fileupload-1.2.1.jar
commons-logging-1.0.4.jar
commons-io.jar
四、在需要使用上传插件的页页头部导入
Html代码
<script type="text/javascript" src="js/jquery-1.4.2.js"></script> <!-- 文件上传开始 --> <link href="css/default.css" rel="stylesheet" type="text/css" /> <link href="css/uploadify.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/swfobject.js"></script> <script type="text/javascript" src="js/jquery.uploadify.v2.1.0.min.js"></script> <script type="text/javascript" src="js/function.js"></script> <!-- 文件上传结束 -->
五、编写js文件
Js代码
1. $(document).ready(function(){ //A文件上传 $("#uploadFile").uploadify({ 'uploader' : 'images/uploadify.swf',//指定上传控件的主体文件,默认‘uploader.swf’ 'script' : 'UploadServlet', //指定服务器端上传处理文件 'scriptData' : {'uploadFile':$('#uploadFile').val()}, 'cancelImg' : 'images/cancel.png', 'fileDataName' : 'uploadFile', 'fileDesc' : 'jpg文件或jpeg文件或gif文件', //出现在上传对话框中的文件类型描述 'fileExt' : '*.jpg;*.jpeg;*.gif', //控制可上传文件的扩展名,启用本项时需同时声明fileDesc 'sizeLimit' : 512000, //控制上传文件的大小,单位byte 'folder' : '/uploadImages', 'queueID' : 'fileQueueA', 'auto' : false, //是否为自动上传 'multi' : true //是否允许多文件上传 }); });
六、html代码
Html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery 文件上传</title> </head> <script type="text/javascript" src="js/jquery-1.4.2.js"></script> <!-- 文件上传开始 --> <link href="css/default.css" rel="stylesheet" type="text/css" /> <link href="css/uploadify.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/swfobject.js"></script> <script type="text/javascript" src="js/jquery.uploadify.v2.1.0.min.js"></script> <script type="text/javascript" src="js/function.js"></script> <!-- 文件上传结束 --> <body> <!-- 显示图片 --> <div id="pic" style="position: absolute; right: 28px; top: 79px; width: 180px; height: 230px; z-index: 2;"></div> <div class="demo"> <p><strong>Multiple File Upload</strong></p> <input id="uploadFile" name="uploadFile" type="file" /> <a href="javascript:$('#uploadFile').uploadifyUpload();">Upload Files</a> | <a href="javascript:$('#uploadFile').uploadifyClearQueue();">Clear Queue</a></div> <div id="fileQueueA" ></div> </body> </html>
七、servlet代码
Java代码
1. package com.aptech.servlet; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletConfig; 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; import com.aptech.util.FileUploadUtil; public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static String path; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 生成存放文件的路径 String savePath = path + "/"; File f1 = new File(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(); // 新的文件名 String newUploadFileName = FileUploadUtil.getlnstance().getNewFileName(name); // // 扩展名格式: // if (name.lastIndexOf(".") >= 0) { // extName = name.substring(name.lastIndexOf(".")); // } File saveFile = new File(savePath + newUploadFileName); try { item.write(saveFile); } catch (Exception e) { e.printStackTrace(); } } } } . @Override public void init(ServletConfig config) throws ServletException { path = config.getServletContext().getRealPath("/uploadImages"); } }
八、配置servlet
Xml代码
1. <?xml version="1.0" encoding="UTF-8"?> 2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>jquery_upload</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>UploadServlet</display-name> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.aptech.servlet.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/UploadServlet</url-pattern> </servlet-mapping> </web-app>