Java最基础的文件上传功能

最简单的文件上传

1、在做之前需要导入的jar包组件:

commons-fileupload-1.2.1.jar、commons-io-2.0.jar(依赖包)

2、页面代码

[html]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10.     <form action="simpleFileupload" method="post" enctype="multipart/form-data">  
  11.     最简单的文件上传:<input type="file" name="fileupload"/>  
  12.     描述:<input type="text" name="desc"/>  
  13.     <input type="submit" value="submit"/>  
  14.     </form>  
  15. </body>  
  16. </html>  
注意:这里的enctype(编码类型)是“multipart/form-data”

3、servlet代码

[java]  view plain  copy
  1. package com.xiaojie.simpleFileupload;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.OutputStream;  
  8. import java.util.List;  
  9.   
  10. import javax.servlet.ServletException;  
  11. import javax.servlet.annotation.WebServlet;  
  12. import javax.servlet.http.HttpServlet;  
  13. import javax.servlet.http.HttpServletRequest;  
  14. import javax.servlet.http.HttpServletResponse;  
  15.   
  16. import org.apache.commons.fileupload.FileItem;  
  17. import org.apache.commons.fileupload.FileUploadException;  
  18. import org.apache.commons.fileupload.disk.DiskFileItemFactory;  
  19. import org.apache.commons.fileupload.servlet.ServletFileUpload;  
  20.   
  21. /** 
  22.  * Servlet implementation class SimpleFileupload 
  23.  */  
  24. @WebServlet("/simpleFileupload")  
  25. public class SimpleFileupload extends HttpServlet {  
  26.     private static final long serialVersionUID = 1L;  
  27.   
  28.     /** 
  29.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
  30.      */  
  31.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  32.         request.setCharacterEncoding("utf-8");  
  33.         response.setCharacterEncoding("utf-8");  
  34.         //1、创建一个DiskFileItemFactory工厂  
  35.         DiskFileItemFactory factory = new DiskFileItemFactory();  
  36.         //2、创建一个文件上传解析器  
  37.         ServletFileUpload upload = new ServletFileUpload(factory);  
  38.         //解决上传文件名的中文乱码  
  39.         upload.setHeaderEncoding("UTF-8");   
  40.         factory.setSizeThreshold(1024 * 500);//设置内存的临界值为500K  
  41.         File linshi = new File("E:\\linshi");//当超过500K的时候,存到一个临时文件夹中  
  42.         factory.setRepository(linshi);  
  43.         upload.setSizeMax(1024 * 1024 * 5);//设置上传的文件总的大小不能超过5M  
  44.         try {  
  45.             // 1. 得到 FileItem 的集合 items  
  46.             List<FileItem> /* FileItem */items = upload.parseRequest(request);  
  47.   
  48.             // 2. 遍历 items:  
  49.             for (FileItem item : items) {  
  50.                 // 若是一个一般的表单域, 打印信息  
  51.                 if (item.isFormField()) {  
  52.                     String name = item.getFieldName();  
  53.                     String value = item.getString("utf-8");  
  54.   
  55.                     System.out.println(name + ": " + value);  
  56.                       
  57.                       
  58.                 }  
  59.                 // 若是文件域则把文件保存到 e:\\files 目录下.  
  60.                 else {  
  61.                     String fileName = item.getName();  
  62.                     long sizeInBytes = item.getSize();  
  63.                     System.out.println(fileName);  
  64.                     System.out.println(sizeInBytes);  
  65.   
  66.                     InputStream in = item.getInputStream();  
  67.                     byte[] buffer = new byte[1024];  
  68.                     int len = 0;  
  69.   
  70.                     fileName = "e:\\files\\" + fileName;//文件最终上传的位置  
  71.                     System.out.println(fileName);  
  72.                     OutputStream out = new FileOutputStream(fileName);  
  73.   
  74.                     while ((len = in.read(buffer)) != -1) {  
  75.                         out.write(buffer, 0, len);  
  76.                     }  
  77.   
  78.                     out.close();  
  79.                     in.close();  
  80.                 }  
  81.             }  
  82.   
  83.         } catch (FileUploadException e) {  
  84.             e.printStackTrace();  
  85.         }  
  86.   
  87.     }  
  88. }  
运行simpleFileupload.jsp文件(如下图)
选择好自己想要上传的文件后,在服务器的e盘下的files文件夹中就可以看到自己上传成功的文件了!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值