Java后端接收MultipartFile類型文件接口問題(帶參與不帶參)
更新時間:2026年05月26日 09:16:10 作者:Tatsumi_zyy
文章主要討論了后端處理文件上傳的方法,強調(diào)接收文件和參數(shù)的多種方式,并user文章主要討論了后端處理文件上傳的方法,強調(diào)接收文件和參數(shù)的多種方式,并提供了具體的代碼實現(xiàn)示例,個人經(jīng)驗總結:后端文件上傳處理,接收文件和參數(shù)的多種方式解析與代碼實現(xiàn)
從后端接收前端的文件(不帶參數(shù))
public interface TestService {
String uploadFileTest(MultipartFile zipFile);
}
---------------------------------------------------------------------
@Service
public class TestServiceImpl implements TestService {
private static final Logger logger = LoggerFactory.getLogger(TestServiceImpl.class);
@Override
public String uploadFileTest(MultipartFile zipFile) {
// 文件保存路徑
String targetFilePath = "D:\\360_js";
// 獲取上傳文件的文件名
String fileName = zipFile.getOriginalFilename();
// 真正地進行文件保存
File targetFile = new File(targetFilePath + File.separator + fileName);
// 以下為日志 可要可不要,如果文件保存失敗,1.檢查路徑是否正確 2.是否已經(jīng)存在該文件 3.可能需要拋出IOException
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(targetFile);
IOUtils.copy(zipFile.getInputStream(), fileOutputStream);
// 日志
logger.info("------>>>>>>uploaded a file successfully!<<<<<<------");
} catch (IOException e) {
e.printStackTrace();
return "IO異常";
} finally {
try {
fileOutputStream.close();
} catch (IOException e) {
logger.error("", e);
}
}
return "success";
}
}
-----------------------------------------------------------------
@Autowired
private TestService testService;
@PostMapping("/upload")
public String uploadFileTest(@RequestParam("uploadFile") MultipartFile zipFile) {
return testService.uploadFileTest(zipFile);
}
后端接收文件 以及接收多個參數(shù)
將文件定義成一個類的屬性,將參數(shù)也定義成類的屬性,如此 接收參數(shù) 和文件
實體類 entity FileSaveReqVO.java
@ApiModelProperty(value = "上傳的文件", required = true)
@NotNull(message = "上傳文件不能為空")
private MultipartFile file;
@ApiModelProperty(value = "文件名稱",hidden = true)
private String Name;
@ApiModelProperty(value = "文件地址", hidden = true)
private String Url;
---------------------------------------------------------
接口 interface
void save(FileSaveReqVO reqVO);
impl層
@Service
public class KettleTransFileServiceImpl implements IKettleTransFileService {
// 文件保存路徑
private String path = "D:\\360_js";
// mapper層控制文件名稱,文件地址保存在數(shù)據(jù)庫
@Autowired
private FileMapper fileMapper;
@Override
public void save(FileSaveReqVO reqVO) {
try {
// 獲取上傳文件名稱
String fileName = reqVO.getFile().getOriginalFilename();
// 真正地進行文件保存
File destFile = new File(kettleHomePath + File.separator + fileName);
reqVO.getFile().transferTo(destFile);
} catch (IOException e) {
throw WinExceptionUtil.winException(SchExceptionEnum.SAVE_KETTLE_FILE_ERROR, reqVO.getName());
}
// 將文件名稱和地址保存在reqVO 便于保存到數(shù)據(jù)庫
reqVO.setName(fileName);
reqVO.setUrl(path+ fileName);
fileMapper.save(reqVO);
}
}
controller層
@PostMapping("/save")
public String save(FileSaveReqVO reqVO) {
fileService.save(reqVO);
return "添加成功";
}
使用postman測試時,記得將類型改成multipart/form-data 文件參數(shù)file 需要其他參數(shù)可以自行設計

當然我們大多數(shù)是不將上傳的文件封裝在類里面,而是另起一個實體,一個文件 接口
只是接收的時候接收參數(shù) 和文件 ,例如:
public void updateFile(Entity entity, MultipartFize file) {
......
}
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot如何讀取配置文件參數(shù)并全局使用
這篇文章主要介紹了SpringBoot如何讀取配置文件參數(shù)并全局使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12
Spring中的@ConfigurationProperties在方法上的使用詳解
這篇文章主要介紹了Spring中的@ConfigurationProperties在方法上的使用詳解,@ConfigurationProperties應該經(jīng)常被使用到,作用在類上的時候,將該類的屬性取值?與配置文件綁定,并生成配置bean對象,放入spring容器中,提供給其他地方使用,需要的朋友可以參考下2024-01-01
Java中的notyfy()和notifyAll()的本質(zhì)區(qū)別
很多朋友對java中的notyfy()和notifyAll()的本質(zhì)區(qū)別不了解,今天小編抽空給大家整理一篇教程關于Java中的notyfy()和notifyAll()的本質(zhì)區(qū)別,需要的朋友參考下吧2017-02-02
JavaSwing實現(xiàn)小型學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了JavaSwing實現(xiàn)小型學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

