標籤:load ack field 一個 try 檔案的 屬性 pre 檔案中
上傳圖片和傳遞參數
上傳圖片和檔案屬於
enctype="multipart/form-data" form中加入enctype="multipart/form-data"時整個表單被封裝,字元將轉成二進位流,因此request.getParameter("user_type")是得不到值的:
預設情況,傳遞參數編碼格式是application/x-www-form-urlencoded,不能用於檔案上傳;只有使用了multipart/form- data,才能完整的傳遞檔案資料,
同時上傳檔案與圖片
DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);List items = null;try { items = upload.parseRequest(request);} catch (FileUploadException e) {e.printStackTrace();} // 解析request請求Iterator iter = items.iterator();while (iter.hasNext()) { FileItem item = (FileItem) iter.next();if (item.isFormField()) { // 如果是表單域 ,就是非檔案上傳元素 String name = item.getFieldName(); // 擷取name屬性的值 String value = item.getString(); // 擷取value屬性的值if (item.getFieldName().equals("intro")) { System.out.println(value+"yeah");}} else { String fieldName = item.getFieldName(); // 檔案域中name屬性的值 String fileName = item.getName(); // 檔案的全路徑,絕對路徑名加檔案名稱 String contentType = item.getContentType(); // 檔案的類型 long size = item.getSize(); // 檔案的大小,以位元組為單位 File saveFile = new File("D:/test.jpg"); // 定義一個file指向一個具體的檔案try { item.write(saveFile);// 把上傳的內容寫到一個檔案中 } catch (Exception e) { e.printStackTrace(); } }}
要解析二進位流來得到文本參數
Servlet doPost方法同時上傳圖片和傳遞參數