Java后端接收MultipartFile类型文件接口问题(带参与不带参)
更新时间:2026年05月26日 09:16:10 作者:Tatsumi_zyy
文章主要讨论了后端处理文件上传的方法,强调接收文件和参数的多种方式,并user文章主要讨论了后端处理文件上传的方法,强调接收文件和参数的多种方式,并提供了具体的代码实现示例,个人经验总结:后端文件上传处理,接收文件和参数的多种方式解析与代码实现
从后端接收前端的文件(不带参数)
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.是否已经存在该文件 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);
}
后端接收文件 以及接收多个参数
将文件定义成一个类的属性,将参数也定义成类的属性,如此 接收参数 和文件
实体类 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层控制文件名称,文件地址保存在数据库
@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 便于保存到数据库
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 文件参数file 需要其他参数可以自行设计

当然我们大多数是不将上传的文件封装在类里面,而是另起一个实体,一个文件 接口
只是接收的时候接收参数 和文件 ,例如:
public void updateFile(Entity entity, MultipartFize file) {
......
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决IDEA项目external libraries依赖包消失的问题
有时候电脑重启后,再打开IDEA上的项目时会出现external libraries目录下的依赖包都消失了的情况,只剩下了一个JDK的包,本文给大家介绍了解决IDEA项目external libraries依赖包消失的办法,需要的朋友可以参考下2024-02-02
spring中通过ApplicationContext getBean获取注入对象的方法实例
今天小编就为大家分享一篇关于spring中通过ApplicationContext getBean获取注入对象的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-03-03
区分java中String+String和String+char
这篇文章主要向大家详细区分了java中String+String和String+char,感兴趣的小伙伴们可以参考一下2016-01-01


最新评论