1. 程式人生 > 其它 >servlet 獲取 formdata引數(包括H5前端base64編碼圖片儲存到本地)

servlet 獲取 formdata引數(包括H5前端base64編碼圖片儲存到本地)

技術標籤:後臺java


      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();
                }
            }
        }
	}