博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery插件 jsp+servlet+uploadify3.1 文件上传
阅读量:6288 次
发布时间:2019-06-22

本文共 5269 字,大约阅读时间需要 17 分钟。

hot3.png

网络上很多的例子虽然说是3.1版本的,但是调用方法都是老版本的,跑不起来,经过查看doc,下面的例子可以在tomcat中正常运行。

index.jsp

[html] 
  1. <%@ page language="java" contentType="text/html; charset=utf-8"%>  
  2. <%  
  3.         String path = request.getContextPath();  
  4.         String basePath = request.getScheme() + "://"  
  5.                 + request.getServerName() + ":" + request.getServerPort()  
  6.                 + path + "/";  
  7.     %>      
  8.     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9.     <html>  
  10.       <head>  
  11.         <base href="<%=basePath%>">  
  12.           
  13.         <title>文件上传</title>  
  14.           
  15.      <link href="css/uploadify.css" rel="stylesheet" type="text/css" />  
  16.      <script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script>  
  17.      <script type="text/javascript" src="scripts/jquery.uploadify-3.1.min.js"></script>  
  18.     <script type="text/javascript">  
  19.     $(document).ready(function() {  
  20.      $("#uploadify").uploadify({  
  21.                     'auto'           : false,  
  22.                     'swf'            : '<%=path%>/scripts/uploadify.swf',  
  23.                     'uploader'       : '<%=path%>/scripts/uploadify',//后台处理的请求  
  24.                     'queueID'        : 'fileQueue',//与下面的id对应  
  25.                     'queueSizeLimit' :1,  
  26.                     'fileTypeDesc'   : 'rar文件或zip文件',  
  27.                     'fileTypeExts'   : '*.rar;*.zip', //控制可上传文件的扩展名,启用本项时需同时声明fileDesc  
  28.                     'multi'          : true,  
  29.                     'buttonText'     : '上传'  
  30.      });  
  31.     });  
  32.     </script>  
  33.      </head>  
  34.     <body>  
  35.             <div id="fileQueue"></div>  
  36.             <input type="file" name="uploadify" id="uploadify" />  
  37.             <p>  
  38.                 <a href="javascript:$('#uploadify').uploadify('upload')">开始上传</a>   
  39.                 <a href="javascript:$('#uploadify').uplaodify('cancel','*')">取消上传</a>  
  40.             </p>  
  41.       </body>  
  42.     </html>  
servlet: Uploadify.java
[java] 
  1. package com.rh.core.upload;  
  2.   
  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.text.SimpleDateFormat;  
  9. import java.util.Date;  
  10. import java.util.Iterator;  
  11. import java.util.List;  
  12.   
  13. import javax.servlet.ServletException;  
  14. import javax.servlet.http.HttpServlet;  
  15. import javax.servlet.http.HttpServletRequest;  
  16. import javax.servlet.http.HttpServletResponse;  
  17.   
  18. import org.apache.commons.fileupload.disk.DiskFileItem;  
  19. import org.apache.commons.fileupload.disk.DiskFileItemFactory;  
  20. import org.apache.commons.fileupload.servlet.ServletFileUpload;  
  21. import org.apache.commons.fileupload.util.Streams;  
  22.   
  23. public class Uploadify extends HttpServlet{  
  24.     private static final long serialVersionUID = 1L;    
  25.         
  26.     /**  
  27.      * 实现多文件的同时上传  
  28.      */     
  29.     public void doGet(HttpServletRequest request,    
  30.             HttpServletResponse response) throws ServletException, IOException {    
  31.             
  32.         //设置接收的编码格式    
  33.         request.setCharacterEncoding("UTF-8");    
  34.         Date date = new Date();//获取当前时间    
  35.         SimpleDateFormat sdfFileName = new SimpleDateFormat("yyyyMMddHHmmss");    
  36.         SimpleDateFormat sdfFolder = new SimpleDateFormat("yyMM");    
  37.         String newfileName = sdfFileName.format(date);//文件名称    
  38.         String fileRealPath = "";//文件存放真实地址    
  39.             
  40.         String fileRealResistPath = "";//文件存放真实相对路径    
  41.             
  42.         //名称  界面编码 必须 和request 保存一致..否则乱码    
  43.         String name = request.getParameter("name");    
  44.                 
  45.              
  46.         String firstFileName="";    
  47.         // 获得容器中上传文件夹所在的物理路径    
  48.         String savePath = this.getServletConfig().getServletContext().getRealPath("/") + "uploads\\" + newfileName +"\\";    
  49.         System.out.println("路径" + savePath+"; name:"+name);    
  50.         File file = new File(savePath);    
  51.         if (!file.isDirectory()) {    
  52.             file.mkdirs();    
  53.         }    
  54.     
  55.         try {    
  56.             DiskFileItemFactory fac = new DiskFileItemFactory();    
  57.             ServletFileUpload upload = new ServletFileUpload(fac);    
  58.             upload.setHeaderEncoding("UTF-8");    
  59.             // 获取多个上传文件    
  60.             List fileList = fileList = upload.parseRequest(request);    
  61.             // 遍历上传文件写入磁盘    
  62.             Iterator it = fileList.iterator();    
  63.             while (it.hasNext()) {    
  64.                 Object obit = it.next();  
  65.                 if(obit instanceof DiskFileItem){  
  66.                     System.out.println("xxxxxxxxxxxxx");  
  67.                     DiskFileItem item = (DiskFileItem) obit;    
  68.                         
  69.                     // 如果item是文件上传表单域       
  70.                     // 获得文件名及路径       
  71.                     String fileName = item.getName();    
  72.                     if (fileName != null) {    
  73.                         firstFileName=item.getName().substring(item.getName().lastIndexOf("\\")+1);    
  74.                         String formatName = firstFileName.substring(firstFileName.lastIndexOf("."));//获取文件后缀名    
  75.                         fileRealPath = savePath + newfileName+ formatName;//文件存放真实地址    
  76.                             
  77.                         BufferedInputStream in = new BufferedInputStream(item.getInputStream());// 获得文件输入流    
  78.                         BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(new File(fileRealPath)));// 获得文件输出流    
  79.                         Streams.copy(in, outStream, true);// 开始把文件写到你指定的上传文件夹    
  80.                         //上传成功,则插入数据库    
  81.                         if (new File(fileRealPath).exists()) {    
  82.                             //虚拟路径赋值    
  83.                             fileRealResistPath=sdfFolder.format(date)+"/"+fileRealPath.substring(fileRealPath.lastIndexOf("\\")+1);    
  84.                             //保存到数据库    
  85.                             System.out.println("保存到数据库:");    
  86.                             System.out.println("name:"+name);    
  87.                             System.out.println("虚拟路径:"+fileRealResistPath);    
  88.                         }    
  89.                              
  90.                     }     
  91.                 }  
  92.             }     
  93.         } catch (org.apache.commons.fileupload.FileUploadException ex) {  
  94.            ex.printStackTrace();    
  95.            System.out.println("没有上传文件");    
  96.            return;    
  97.         }     
  98.        response.getWriter().write("1");    
  99.             
  100.     }    
  101.      
  102.     public void doPost(HttpServletRequest req, HttpServletResponse resp)    
  103.             throws ServletException, IOException {    
  104.         doGet(req, resp);    
  105.     }    
  106. }  
web.xml
[html] 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app id="WebApp_ID" version="2.4"   
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.   
  8.     <servlet>    
  9.      <servlet-name>Uploadify</servlet-name>    
  10.      <servlet-class>com.rh.core.upload.Uploadify</servlet-class>    
  11.     </servlet>    
  12.     <servlet-mapping>    
  13.      <servlet-name>Uploadify</servlet-name>    
  14.      <url-pattern>/scripts/uploadify</url-pattern>    
  15.     </servlet-mapping>  
  16.     <welcome-file-list>  
  17.         <welcome-file>index.jsp</welcome-file>  
  18.     </welcome-file-list>  
  19. </web-app>  
项目截图:(可能需要修改css文件中图片的位置)

转载于:https://my.oschina.net/u/1015032/blog/184193

你可能感兴趣的文章
Java中的锁
查看>>
节省60%费用!巧用阿里云归档存储降低基因测序成本
查看>>
《Adobe Dreamweaver CS6中文版经典教程》——1.7 创建自定义的快捷键
查看>>
linux学习笔记三: secureCRT小键盘输入数字键的时候,出现字母的解决方法:
查看>>
beego打印请求http内容
查看>>
手机自动化测试:Appium源码分析之跟踪代码分析二
查看>>
老李推荐:第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
查看>>
Java语言概述
查看>>
支持 web sftp的Jumpserver 1.4.2 发布
查看>>
企业环境下MySQL5.5调优
查看>>
【阿里云MVP Meetup 第四期】产业中的“图像识别”分享与探索,干货来袭!
查看>>
集体通宵发版怎么破?阿里敏捷教练开出四道“药方”
查看>>
git常用命令
查看>>
3.07-JS合并两个JSON对象
查看>>
VUE2.0 实现移动端在固定区域内的滚动效果
查看>>
angularjs入门(一)
查看>>
环境变量PATH、cp命令、mv命令、cat命令、tac命令、more、less、head、tail
查看>>
2.10 环境变量PATH 2.11 cp命令 2.12 mv命令 2.13 文档查看cat/more/less/head/tail
查看>>
Linux快速入门(二)
查看>>
android -- 截屏-view.getDrawingCache()
查看>>