日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

java實現(xiàn)文件上傳的三種方式 java文件上傳原理( 二 )


@PostMapping(“/upload”)
public String singleFileUpload(@RequestParam(“file”) MultipartFile file,
RedirectAttributes redirectAttributes) {
if (file.isEmpty()) {
redirectAttributes.addFlashAttribute(“message”, “Please select a file to upload”);
return “redirect:uploadStatus”;
}
try {
// Get the file and save it somewhere
byte[] bytes = file.getBytes();
Path path = Paths.get(UPLOADED_FOLDER + file.getOriginalFilename());
Files.write(path, bytes);
redirectAttributes.addFlashAttribute(“message”,
“You successfully uploaded ‘” + file.getOriginalFilename() + “‘”);
} catch (IOException e) {
e.printStackTrace();
}
return “redirect:/uploadStatus”;
}
上面代碼的意思就是,通過MultipartFile讀取文件信息,如果文件為空跳轉(zhuǎn)到結(jié)果頁并給出提示;如果不為空讀取文件流并寫入到指定目錄,最后將結(jié)果展示到頁面 。
MultipartFile是Spring上傳文件的封裝類,包含了文件的二進(jìn)制流和文件屬性等信息,在配置文件中也可對相關(guān)屬性進(jìn)行配置,基本的配置信息如下:

  • spring.http.multipart.enabled=true #默認(rèn)支持文件上傳.
  • spring.http.multipart.file-size-threshold=0 #支持文件寫入磁盤.
  • spring.http.multipart.location= # 上傳文件的臨時目錄
  • spring.http.multipart.max-file-size=1Mb # 最大支持文件大小
  • spring.http.multipart.max-request-size=10Mb # 最大支持請求大小
最常用的是最后兩個配置內(nèi)容,限制文件上傳大小,上傳時超過大小會拋出異常:

java實現(xiàn)文件上傳的三種方式 java文件上傳原理


更多配置信息參考這里:Common application properties
5、異常處理@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MultipartException.class)
public String handleError1(MultipartException e, RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute(“message”, e.getCause().getMessage());
return “redirect:/uploadStatus”;
}
}
設(shè)置一個@ControllerAdvice用來監(jiān)控Multipart上傳的文件大小是否受限,當(dāng)出現(xiàn)此異常時在前端頁面給出提示 。利用@ControllerAdvice可以做很多東西,比如全局的統(tǒng)一異常處理等,感興趣的同學(xué)可以下來了解 。
6、總結(jié)【java實現(xiàn)文件上傳的三種方式 java文件上傳原理】這樣一個使用 Spring Boot 上傳文件的簡單 Demo 就完成了,感興趣的同學(xué)可以將示例代碼下載下來試試吧 。

推薦閱讀