文件上傳SpringBoot后端MultipartFile參數(shù)報空問題的解決辦法
最近寫了一個文件上傳的小demo,就是簡單的前端html頁面,后端controller接收,但是后端一直報錯文件為null,看了很多文章,有說spring-boot自帶的org.springframework.web.multipart.MultipartFile和Multipart沖突了,要在啟動類中加入@EnableAutoConfiguration(exclue={MultipartAutoConfiguration.class}),有說要在MultipartFile參數(shù)前加上@RequestParam(“file”)以表明該參數(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;
@RestController
public 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 "上傳失敗";
}
}
到此這篇關于文件上傳SpringBoot后端MultipartFile參數(shù)報空問題的解決辦法的文章就介紹到這了,更多相關SpringBoot MultipartFile參數(shù)報空 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot jackson自定義序列化和反序列化實例
這篇文章主要介紹了spring boot jackson自定義序列化和反序列化實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Javaweb使用thymeleaf局部刷新結合Layui插件實現(xiàn)Html分頁
本文主要介紹了Javaweb使用thymeleaf局部刷新結合Layui插件實現(xiàn)Html分頁,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
關于PreparedStatement的setObject作用及說明
這篇文章主要介紹了關于PreparedStatement的setObject作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
java 反射 動態(tài)調(diào)用不同類的靜態(tài)方法(推薦)
下面小編就為大家?guī)硪黄狫AVA 反射 動態(tài)調(diào)用不同類的靜態(tài)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
在JAVA?Web項目中動態(tài)加載DLL/SO文件的方法
在JAVA?Web項目中,我們經(jīng)常需要調(diào)用一些第三方庫或者實現(xiàn)一些JAVA本身不支持的功能,這時,我們可能會考慮使用JNI來調(diào)用DLL或SO文件,然而,因此,本文將介紹如何在JAVA?Web項目中動態(tài)加載DLL/SO文件,需要的朋友可以參考下2024-12-12

