Html5的文件上传

HTML5实现多文件的上传示例代码

  1139人阅读  评论(2)  收藏  举报


代码如下:

[html]  view plain  copy
  1. <input type="file" name="multipleFileUpload" multiple />   

下面是页面的详细代码: 

代码如下:
[html]  view plain  copy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5. <title>Solution 4-5: Sending multiple files</title>  
  6. </head>  
  7. <body>  
  8.     <form id="myForm"  
  9.         action="http://10.10.25.31:8080/myupload/UploadPhotoServlet"  
  10.         ENCTYPE="multipart/form-data" METHOD="POST">  
  11.         <input type="file" name="multipleFileUpload" multiple /> <input  
  12.             type="submit" value="提交"> <input type="reset" value="重设">  
  13.     </form>  
  14. </body>  
  15. </html>  

java后台的详细代码: 

代码如下:

[java]  view plain  copy
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Calendar;  
  5. import java.util.Date;  
  6. import java.util.List;  
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11. import org.apache.commons.fileupload.FileItem;  
  12. import org.apache.commons.fileupload.FileUploadException;  
  13. import org.apache.commons.fileupload.disk.DiskFileItemFactory;  
  14. import org.apache.commons.fileupload.servlet.ServletFileUpload;  
  15.   
  16. /** 
  17.  * Servlet implementation class UploadPhotoServlet 
  18.  */  
  19. public class UploadPhotoServlet extends HttpServlet {  
  20.     private static final long serialVersionUID = 1L;  
  21.   
  22.     /** 
  23.      * @see HttpServlet#HttpServlet() 
  24.      */  
  25.     public UploadPhotoServlet() {  
  26.         super();  
  27.         // TODO Auto-generated constructor stub  
  28.     }  
  29.   
  30.     /** 
  31.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
  32.      *      response) 
  33.      */  
  34.     protected void doGet(HttpServletRequest request,  
  35.             HttpServletResponse response) throws ServletException, IOException {  
  36.         // TODO Auto-generated method stub  
  37.         doPost(request, response);  
  38.     }  
  39.   
  40.     /** 
  41.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
  42.      *      response) 
  43.      */  
  44.     @SuppressWarnings("unchecked")  
  45.     protected void doPost(HttpServletRequest request,  
  46.             HttpServletResponse response) throws ServletException, IOException {  
  47.         String imagePath = "c:\\uploadFile\\Image\\" + getEachDate() + "\\";// 按日期生成文件夹  
  48.         File uploadPath = new File(imagePath);  
  49.         if (!uploadPath.exists()) {  
  50.             uploadPath.mkdirs();  
  51.         }  
  52.         File tmp = new File("c:\\tmp\\");  
  53.         if (!tmp.exists()) {  
  54.             tmp.mkdirs();  
  55.         }  
  56.         DiskFileItemFactory factory = new DiskFileItemFactory();// 创建磁盘工厂  
  57.         factory.setRepository(tmp);// 设置文件缓存路径  
  58.         factory.setSizeThreshold(10 * 1096);// 将文件保存在内存还是磁盘临时文件夹的默认临界值,值为10240,即10kb  
  59.         ServletFileUpload sfu = new ServletFileUpload(factory);// 创建处理工具  
  60.         sfu.setSizeMax(10 * 1024 * 1024);// 服务器端可以接收的最大文件大小,-1表示无上限  
  61.         String fileName = null;  
  62.         try {  
  63.             List<FileItem> list = sfu.parseRequest(request);// 解析  
  64.             if (list.size() < 1) {  
  65.                 return;  
  66.             }  
  67.             for (int j = 0; j < list.size(); j++) {  
  68.                 FileItem item = list.get(j);  
  69.                 fileName = item.getName();  
  70.                 if (fileName.equals("")) {  
  71.                     request.getRequestDispatcher("/com/visualizerPhoto.jsp")  
  72.                             .forward(request, response);  
  73.                     return;  
  74.                 }  
  75.                 int pos = fileName.lastIndexOf(".");// 取图片文件格式  
  76.                 if (pos > 0) {  
  77.                     Date date = new Date();  
  78.                     fileName = imagePath + date.getTime()  
  79.                             + fileName.substring(pos);  
  80.                 }  
  81.                 System.out.println("item:" + item);  
  82.                 item.write(new File(fileName));// 写到磁盘  
  83.             }  
  84.         } catch (FileUploadException e) {  
  85.             e.printStackTrace();  
  86.         } catch (Exception e) {  
  87.             e.printStackTrace();  
  88.         }  
  89.     }  
  90.   
  91.     // 13-11-15  
  92.     public static String getEachDate() {  
  93.         Calendar cal = Calendar.getInstance();  
  94.         cal.add(Calendar.DATE, 0);  
  95.         String yesterday = new SimpleDateFormat("yyyy-MM-dd ").format(cal  
  96.                 .getTime());  
  97.         String[] dates = yesterday.split("-");  
  98.         String realDate = dates[0].substring(24) + "-" + dates[1] + "-"  
  99.                 + dates[2];  
  100.         return realDate.trim();  
  101.     }  
  102. }  

下面是效果图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值