文件上傳SpringBoot后端MultipartFile參數(shù)報(bào)空問(wèn)題的解決辦法
最近寫(xiě)了一個(gè)文件上傳的小demo,就是簡(jiǎn)單的前端html頁(yè)面,后端controller接收,但是后端一直報(bào)錯(cuò)文件為null,看了很多文章,有說(shuō)spring-boot自帶的org.springframework.web.multipart.MultipartFile和Multipart沖突了,要在啟動(dòng)類(lèi)中加入@EnableAutoConfiguration(exclue={MultipartAutoConfiguration.class}),有說(shuō)要在MultipartFile參數(shù)前加上@RequestParam(“file”)以表明該參數(shù)類(lèi)型是文件類(lèi)型,還有說(shuō)是前端表單沒(méi)有設(shè)置enctype=“multipart/form-data”,參照上面方法我還是沒(méi)有解決問(wèn)題,后來(lái)更換了spring-boot版本就好了,代碼如下:
1、pom.xml(注意我這里用的是2.0.4版本)
<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> </parent> <groupId>org.sang</groupId> <artifactId>chapter01</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
2、upload.html頁(yè)面
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><form action='/upload' method='post' enctype='multipart/form-data'> <input type='file' name='uploadFile' value='請(qǐng)選擇文件'> <input type='submit' value='上傳'></form></body></html>
3、后端controller
import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.UUID;@RestControllerpublic class FileUploadController { SimpleDateFormat sdf = new SimpleDateFormat('yyyy/MM/dd'); @PostMapping('upload') public String upload(MultipartFile uploadFile, HttpServletRequest req){ String realPath = req.getSession().getServletContext().getRealPath('/uploadFile'); String format = sdf.format(new Date()); File folder = new File(realPath+format); if(!folder.isDirectory()){ folder.mkdirs(); } String oldName = uploadFile.getOriginalFilename(); String newName = UUID.randomUUID().toString()+oldName.substring(oldName.lastIndexOf('.'),oldName.length()); try{ uploadFile.transferTo(new File(folder,newName)); String path = req.getScheme()+'://'+req.getServerName()+':'+req.getServerPort()+'/uploadFile/'+format+newName; return path; }catch (IOException e){ e.printStackTrace(); } return '上傳失敗'; }}
到此這篇關(guān)于文件上傳SpringBoot后端MultipartFile參數(shù)報(bào)空問(wèn)題的解決辦法的文章就介紹到這了,更多相關(guān)SpringBoot MultipartFile參數(shù)報(bào)空 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 簡(jiǎn)述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別2. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析3. 詳解JAVA 強(qiáng)引用4. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法5. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法6. 使用Python3 poplib模塊刪除服務(wù)器多天前的郵件實(shí)現(xiàn)代碼7. IntelliJ IDEA設(shè)置背景圖片的方法步驟8. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題9. 深入了解JAVA 軟引用10. SpringBoot集成mqtt的多模塊項(xiàng)目配置詳解
