文件上傳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)類中加入@EnableAutoConfiguration(exclue={MultipartAutoConfiguration.class}),有說(shuō)要在MultipartFile參數(shù)前加上@RequestParam(“file”)以表明該參數(shù)類型是文件類型,還有說(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. JSP中Servlet的Request與Response的用法與區(qū)別2. IntelliJ IDEA刪除類的方法步驟3. vue cli4下環(huán)境變量和模式示例詳解4. Django視圖類型總結(jié)5. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理6. Intellij IDEA 關(guān)閉和開(kāi)啟自動(dòng)更新的提示?7. Python Selenium XPath根據(jù)文本內(nèi)容查找元素的方法8. python如何編寫(xiě)類似nmap的掃描工具9. 解析原生JS getComputedStyle10. javascript使用alert實(shí)現(xiàn)一個(gè)精美的彈窗
