1、文件上傳原理??
表單的enctype 屬性規(guī)定在發(fā)送到服務(wù)器之前應(yīng)該如何對(duì)表單數(shù)據(jù)進(jìn)行編碼。 當(dāng)表單的enctype="application/x-www-form-urlencoded"(默認(rèn))時(shí),form表單中的數(shù)據(jù)格式為:key=value&key=value 當(dāng)表單的enctype="multipart/form-data"時(shí),其傳輸數(shù)據(jù)形式如下
?2、SpirngBoot實(shí)現(xiàn)文件上傳功能??
Spring Boot工程嵌入的tomcat限制了請(qǐng)求的文件大小,每個(gè)文件的配置最大為1Mb,單次請(qǐng)求的文件的總數(shù)不能大于10Mb。 要更改這個(gè)默認(rèn)值需要在配置文件(如application.properties)中加入兩個(gè)配置
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
3、SpirngBoot實(shí)現(xiàn)文件上傳功能??
當(dāng)表單的enctype="multipart/form-data"時(shí),可以使用MultipartFile?獲取上傳的文件數(shù)據(jù),再通過(guò)transferTo方法將其寫(xiě)入到磁盤(pán)中
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String up(String nickname, MultipartFile photo, HttpServletRequest request) throws IOException {
System.out.println(nickname);
// 獲取圖片的原始名稱(chēng)
System.out.println(photo.getOriginalFilename());
// 取文件類(lèi)型
System.out.println(photo.getContentType());
String path = request.getServletContext().getRealPath("/upload/");
System.out.println(path);
saveFile(photo,path);
return "上傳成功";
}
//
public void saveFile(MultipartFile photo,String path) throws IOException {
// 判斷存儲(chǔ)的目錄是否存在,如果不存在則創(chuàng)建
File dir = new File(path);
if(!dir.exists()){
// 創(chuàng)建目錄
dir.mkdir();
}
File file = new File(path+photo.getOriginalFilename());
photo.transferTo(file);
}
}
4、測(cè)試??
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-816325.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-816325.html
到了這里,關(guān)于SpringBoot之文件上傳的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!