//这是script代码 <link rel="stylesheet" type="text/css" href="uploadify/uploadify.css"> <script type="text/javascript" src="jquery-1.8.0.js"></script> <script type="text/javascript" src="uploadify/jquery.uploadify.min.js"></script> <script> $(document).ready(function() { $('#file_upload').uploadify( { 'debug':'true', 'swf' : 'uploadify/uploadify.swf',//上传按钮的图片,默认是这个flash文件 'uploader' : 'LoginServlet',//上传所处理的服务器 'cancelImg' : 'uploadfiy/uploadify-cancel.png',//取消图片 'method':'post', 'folder' : '/UploadFile',//上传后,所保存文件的路径 'queueID' : 'fileQueue',//上传显示进度条的那个div 'buttonText' : '请选择文件', //'onUploadComplete': function(file){alert('The file'+file.name+'finished processing!')},//每个文件上传成功后的函数 progressData : 'percentage', 'auto' : false, 'multi' : true, //'onSelect':function(file){ //alert("文件"+file.name+"被选择了!"); //} //'onQueueComplete' : function(queueData) { // alert(queueData.filesQueued + 'files were successfully!') //},//当队列中的所有文件上传成功后,弹出共有多少个文件上传成功 'onDisable' : function() { alert('uploadify is disable'); },//在调用disable方法时候触发 //'onCancel':function(){alert('你取消了文件上传')} //'onUploadStart' : function(file) {//在调用上传前触发 //alert('The file ' + file.name + ' is being uploaded.')} 'onError' : function(errorType,errObj) { alert('The error was: ' + errObj.info) } }); }); </script>
//这是表单元素 <div id="fileQueue"></div> <input id="file_upload" name="file_upload" type="file" multiple="true"> <p> <!-- 加上“*”表示当第一个文件上传成功后,立即上传以后队列中的文件,否则需要自己手动 --> <a href="javascript:$('#file_upload').uploadify('upload','*')">上传</a>| <a href="javascript:$('#file_upload').uploadify('cancel',$('.uploadifive-queue-item').first().data('file'))">取消上传</a> <a href="javascript:$('#file_upload').uploadify('cancel','*')">清空所有的上传文件</a> <a href="javascript:$('#file_upload').uploadify('stop','*')">暂停</a> <!-- 如果填入true则表示禁用上传按钮 --> <a href="javascript:$('#file_upload').uploadify('disable','true')">禁用</a> <a href="javascript:$('#file_upload').uploadify('debug')">调试</a> </p>
1 //后台servlet 2 package com.accp.upload; 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 import java.text.SimpleDateFormat; 10 import java.util.Date; 11 import java.util.Iterator; 12 import java.util.List; 13 14 import javax.servlet.ServletException; 15 import javax.servlet.http.HttpServlet; 16 import javax.servlet.http.HttpServletRequest; 17 import javax.servlet.http.HttpServletResponse; 18 19 import org.apache.commons.fileupload.disk.DiskFileItem; 20 import org.apache.commons.fileupload.disk.DiskFileItemFactory; 21 import org.apache.commons.fileupload.servlet.ServletFileUpload; 22 import org.apache.commons.fileupload.util.Streams; 23 24 public class LoginServlet extends HttpServlet { 25 26 /** 27 * The doGet method of the servlet. <br> 28 * 29 * This method is called when a form has its tag value method equals to get. 30 * 31 * @param request 32 * the request send by the client to the server 33 * @param response 34 * the response send by the server to the client 35 * @throws ServletException 36 * if an error occurred 37 * @throws IOException 38 * if an error occurred 39 */ 40 public void doGet(HttpServletRequest request, HttpServletResponse response) 41 throws ServletException, IOException { 42 43 response.setContentType("text/html;charset=utf-8;"); 44 doPost(request, response); 45 } 46 47 /** 48 * The doPost method of the servlet. <br> 49 * 50 * This method is called when a form has its tag value method equals to 51 * post. 52 * 53 * @param request 54 * the request send by the client to the server 55 * @param response 56 * the response send by the server to the client 57 * @throws ServletException 58 * if an error occurred 59 * @throws IOException 60 * if an error occurred 61 */ 62 @SuppressWarnings("unchecked") 63 public void doPost(HttpServletRequest request, HttpServletResponse response) 64 throws ServletException, IOException { 65 66 response.setContentType("text/html;charset=utf-8;"); 67 request.setCharacterEncoding("utf-8"); 68 PrintWriter out = response.getWriter(); 69 // 设置接收的编码格式 70 request.setCharacterEncoding("UTF-8"); 71 Date date = new Date();// 获取当前时间 72 SimpleDateFormat sdfFileName = new SimpleDateFormat("yyyyMMddHHmmss"); 73 SimpleDateFormat sdfFolder = new SimpleDateFormat("yyMM"); 74 String newfileName = sdfFileName.format(date);// 文件名称 75 String fileRealPath = "";// 文件存放真实地址 76 77 String fileRealResistPath = "";// 文件存放真实相对路径 78 79 // 名称 界面编码 必须 和request 保存一致..否则乱码 80 String name = request.getParameter("name"); 81 82 String firstFileName = ""; 83 // 获得容器中上传文件夹所在的物理路径 84 String savePath = this.getServletConfig().getServletContext() 85 .getRealPath("/") 86 + "uploads\" + newfileName + "\"; 87 System.out.println("路径" + savePath + "; name:" + name); 88 File file = new File(savePath); 89 if (!file.isDirectory()) { 90 file.mkdirs(); 91 } 92 93 try { 94 DiskFileItemFactory fac = new DiskFileItemFactory(); 95 ServletFileUpload upload = new ServletFileUpload(fac); 96 upload.setHeaderEncoding("UTF-8"); 97 // 获取多个上传文件 98 List fileList = fileList = upload.parseRequest(request); 99 // 遍历上传文件写入磁盘 100 Iterator it = fileList.iterator(); 101 while (it.hasNext()) { 102 Object obit = it.next(); 103 if (obit instanceof DiskFileItem) { 104 System.out.println("xxxxxxxxxxxxx"); 105 DiskFileItem item = (DiskFileItem) obit; 106 107 // 如果item是文件上传表单域 108 // 获得文件名及路径 109 String fileName = item.getName(); 110 if (fileName != null) { 111 firstFileName = item.getName().substring( 112 item.getName().lastIndexOf("\") + 1); 113 String formatName = firstFileName 114 .substring(firstFileName.lastIndexOf("."));// 获取文件后缀名 115 fileRealPath = savePath + newfileName + formatName;// 文件存放真实地址 116 117 BufferedInputStream in = new BufferedInputStream(item 118 .getInputStream());// 获得文件输入流 119 BufferedOutputStream outStream = new BufferedOutputStream( 120 new FileOutputStream(new File(fileRealPath)));// 获得文件输出流 121 Streams.copy(in, outStream, true);// 开始把文件写到你指定的上传文件夹 122 // 上传成功,则插入数据库 123 if (new File(fileRealPath).exists()) { 124 // 虚拟路径赋值 125 fileRealResistPath = sdfFolder.format(date) 126 + "/" 127 + fileRealPath.substring(fileRealPath 128 .lastIndexOf("\") + 1); 129 // 保存到数据库 130 System.out.println("保存到数据库:"); 131 System.out.println("name:" + name); 132 System.out.println("虚拟路径:" + fileRealResistPath); 133 } 134 135 } 136 } 137 } 138 } catch (org.apache.commons.fileupload.FileUploadException ex) { 139 ex.printStackTrace(); 140 System.out.println("没有上传文件"); 141 return; 142 } 143 response.getWriter().write("1"); 144 out.flush(); 145 out.close(); 146 147 } 148 149 }