經過form表單上傳文件,後臺接收的方法

 

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

 

 後臺接收:apache

  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 }
相關文章
相關標籤/搜索