springboot 上傳圖片(多張和單張都可以)
阿新 • • 發佈:2018-11-29
@RequestMapping("/upload") @ResponseBody public String handleFileUpload(HttpServletRequest request) { MultipartHttpServletRequest params = ((MultipartHttpServletRequest) request); List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file"); System.out.println("files" + files); //接收前端傳過來的欄位 //String name = params.getParameter("name"); MultipartFile file = null; //先設定一個數組來裝file路徑 List imgs = new ArrayList(); //設定圖片路徑 private final String UPLOAD_FOLDER = "pic/"; for (int i = 0; i < files.size(); ++i) { file = files.get(i); if (!file.isEmpty()) { try { byte[] bytes = file.getBytes(); // 獲取圖片的檔名 String fileName = file.getOriginalFilename(); // 獲取圖片的副檔名 String extensionName = fileName.substring(fileName.lastIndexOf(".") + 1); // 新的圖片檔名 = 獲取時間戳+"."圖片副檔名 String newFileName = String.valueOf(System.currentTimeMillis()) + "." + extensionName; //圖片路徑 Path path = Paths.get(UPLOAD_FOLDER + newFileName); //System.out.println("lj: " + path); imgs.add(path); //如果沒有files資料夾,則建立 if (!Files.isWritable(path)) { Files.createDirectories(Paths.get(UPLOAD_FOLDER)); } //檔案寫入指定路徑 Files.write(path, bytes); } catch (Exception e) { return "圖片上傳失敗 " + i + " => " + e.getMessage(); } } else { return "圖片上傳失敗 " + i + " because the file was empty."; } } return "圖片上傳成功"; }