servlet 獲取 formdata引數(包括H5前端base64編碼圖片儲存到本地)
阿新 • • 發佈:2021-01-30
try { //獲取formdata 引數 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); List items = upload.parseRequest(request); Map params = new HashMap(); for(Object object:items){ FileItem fileItem = (FileItem) object; if (fileItem.isFormField()) { params.put(fileItem.getFieldName(), fileItem.getString("utf-8"));//如果你頁面編碼是utf-8的 } } //使用params.get獲取引數值 String para = (String) params.get("paraname"); } catch (FileUploadException e1) { e1.printStackTrace(); } out.close(); } //base64圖片儲存到本地 public static void base64ToFile(String base64, String fileName, String savePath) { File file = null; //建立檔案目錄 String filePath = savePath; File dir = new File(filePath); if (!dir.exists() && !dir.isDirectory()) { dir.mkdirs(); } BufferedOutputStream bos = null; java.io.FileOutputStream fos = null; try { byte[] bytes = Base64.getDecoder().decode(base64); file=new File(filePath + fileName); fos = new java.io.FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }