Springboot多文件上傳


springBoot自身加載了MultipartServletResolver解析器,無須引入commons-io.jar , commons-fileupload.jar倆個jar包,而Spring需要。因此可以直接使用:@EnableAutoConfiguration(exclude={MultipartAutoConfiguration.class})

通過MultipartFile來處理文件上傳

@PostMapping("from")
@ResponseBody
public String handleFormUpload(MultipartFile file) throws IOException {

if(!file.isEmpty()) {

String originalFilename = file.getOriginalFilename();
InputStream inputStream = file.getInputStream();

//處理上傳內容
return "success";
}
return "failure";
}
MultipartFile提供了以下方法來獲取上傳文件的信息:

getOriginalFilename,獲取上傳的文件名字;
getBytes,獲取上傳文件內容,轉為字節數組;
getInputStream,獲取一個InputStream;
isEmpty,文件上傳內容為空,或者根本就沒有文件上傳;
getSize,文件上傳的大小。
transferTo(File dest),保存文件到目標文件系統;
同時上傳多個文件,則使用MultipartFile數組類來接受多個文件上傳:

@PostMapping("from")
@ResponseBody
public String handleFormUpload(MultipartFile[] files) throws IOException {

return "failure";
}
可以通過配置application.properties對SpringBoot上傳的文件進行限定默認為如下配置:

spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=0
spring.servlet.multipart.location=
spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.resolve-lazily=false
enabled默認為true,既允許附件上傳。
file-size-threshold限定了當上傳文件超過一定長度時,就先寫到臨時文件里。有助於上傳文件不占用過多的內存,單位是MB或KB,默認0,既不限定閾值。
location指的是臨時文件的存放目錄,如果不設定,則web服務器提供一個臨時目錄。
max-file-size屬性指定了單個文件的最大長度,默認1MB,max-request-size屬性說明單次HTTP請求上傳的最大長度,默認10MB.
resolve-lazily表示當文件和參數被訪問的時候再被解析成文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM