文件上傳SpringBoot后端MultipartFile參數(shù)報(bào)空問題的解決辦法
最近寫了一個文件上傳的小demo,就是簡單的前端html頁面,后端controller接收,但是后端一直報(bào)錯文件為null,看了很多文章,有說spring-boot自帶的org.springframework.web.multipart.MultipartFile和Multipart沖突了,要在啟動類中加入@EnableAutoConfiguration(exclue={MultipartAutoConfiguration.class}),有說要在MultipartFile參數(shù)前加上@RequestParam(“file”)以表明該參數(shù)類型是文件類型,還有說是前端表單沒有設(shè)置enctype=“multipart/form-data”,參照上面方法我還是沒有解決問題,后來更換了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頁面
<!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='請選擇文件'> <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)空問題的解決辦法的文章就介紹到這了,更多相關(guān)SpringBoot MultipartFile參數(shù)報(bào)空 內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python安裝并操作redis實(shí)現(xiàn)流程詳解2. 網(wǎng)頁中img圖片使用css實(shí)現(xiàn)等比例自動縮放不變形(代碼已測試)3. 部署vue+Springboot前后端分離項(xiàng)目的步驟實(shí)現(xiàn)4. Python常用擴(kuò)展插件使用教程解析5. idea設(shè)置自動導(dǎo)入依賴的方法步驟6. AspNetCore&MassTransit Courier實(shí)現(xiàn)分布式事務(wù)的詳細(xì)過程7. vue組件庫的在線主題編輯器的實(shí)現(xiàn)思路8. ajax post下載flask文件流以及中文文件名問題9. AJAX實(shí)現(xiàn)數(shù)據(jù)的增刪改查操作詳解【java后臺】10. PHP字符串前后字符或空格刪除方法介紹

網(wǎng)公網(wǎng)安備