通過form表單上傳文件,后台接收的方法


 

上傳文件時,form表單應加上參數  enctype="multipart/form-data

 

 后台接收:

  1 package com.jredu.servlet;
  2 
  3 import java.io.File;
  4 import java.io.IOException;
  5 import java.util.ArrayList;
  6 import java.util.List;
  7 
  8 import javax.servlet.ServletException;
  9 import javax.servlet.annotation.WebServlet;
 10 import javax.servlet.http.HttpServlet;
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpServletResponse;
 13 
 14 import org.apache.commons.fileupload.FileItem;
 15 import org.apache.commons.fileupload.FileUploadException;
 16 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 17 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 18 
 19 import com.jredu.model.User;
 20 import com.jredu.service.UserService;
 21 import com.jredu.service.Impl.UserServiceImpl;
 22 
 23 @WebServlet("/register.action")
 24 public class Register extends HttpServlet {
 25 
 26     /**
 27      * 
 28      */
 29     private static final long serialVersionUID = 1057467000241502504L;
 30 
 31     @Override
 32     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
 33             throws ServletException, IOException {
 34         // TODO Auto-generated method stub
 35         doGet(req, resp);
 36     }
 37 
 38     @Override
 39     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
 40             throws ServletException, IOException {
 41         // TODO Auto-generated method stub
 42         UserService service = new UserServiceImpl();
 43         // 創建磁盤工廠 緩沖區和磁盤目錄
 44         DiskFileItemFactory factory = new DiskFileItemFactory();
 45         // 設置文件上傳的大小限制
 46         ServletFileUpload upload = new ServletFileUpload(factory);
 47         upload.setFileSizeMax(1024 * 1024 * 10);// 最大上傳10M
 48         upload.setHeaderEncoding("utf-8");// 設置編碼格式
 49         try {
 50             String name = null;
 51             // 注冊獲取前台的值
 52             String value = null;
 53             String newName = null;
 54             ArrayList<Object> list = new ArrayList<Object>();
 55             @SuppressWarnings("unchecked")
 56             List<FileItem> files = upload.parseRequest(req);
 57             for (FileItem fileItem : files) {
 58                 // 判斷當前的數據時文件還是普通的表單
 59                 // 是文件
 60                 if (fileItem.isFormField()) {
 61                     name = fileItem.getFieldName();// 獲取屬性的名字
 62                     value = fileItem.getString("utf-8");// 獲取屬性的值
 63                     list.add(value);
 64                 } else {
 65                     // 是表單
 66                     // 獲取文件上傳的文件名
 67                     name = fileItem.getName();
 68 
 69                     // 定義一個新的文件來接收
 70                     newName = System.currentTimeMillis() + name;// 以當前的總秒數來命名防止圖片名稱相同而覆蓋
 71                     File file = new File("D:\\image\\" + newName);
 72 
 73                     // 圖片的存儲路徑
 74                     String headImg = "img/" + newName;
 75                     list.add(headImg);
 76                     // 從緩沖區寫入磁盤
 77                     fileItem.write(file);
 78                     fileItem.delete();
 79                 }
 80 
 81             }
 82 
 83             // 獲取到全部的用戶列表
 84             List<User> uList = service.allUser();
 85 
 86             // 將新注冊的用戶存入數據
 87             boolean flag = service.register(list);
 88 
 89             if (flag) {
 90                 System.out.println("注冊成功");
 91 
 92                 // 跳轉到登陸界面
 93                 req.getRequestDispatcher("/page/login.jsp").forward(req, resp);
 94 
 95             } else {
 96                 System.out.println("注冊失敗");
 97             }
 98 
 99         } catch (FileUploadException e) {
100             // TODO Auto-generated catch block
101             e.printStackTrace();
102         } catch (Exception e) {
103             // TODO Auto-generated catch block
104             e.printStackTrace();
105         }
106 
107     }
108 
109 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM