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) {
  ......
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java根据Request获取客户端IP

    Java根据Request获取客户端IP

    这篇文章主要介绍了Java根据Request获取客户端IP的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • 解决IDEA项目external libraries依赖包消失的问题

    解决IDEA项目external libraries依赖包消失的问题

    有时候电脑重启后,再打开IDEA上的项目时会出现external libraries目录下的依赖包都消失了的情况,只剩下了一个JDK的包,本文给大家介绍了解决IDEA项目external libraries依赖包消失的办法,需要的朋友可以参考下
    2024-02-02
  • Java后端SSM框架图片上传功能实现方法解析

    Java后端SSM框架图片上传功能实现方法解析

    这篇文章主要介绍了Java后端SSM框架图片上传功能实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 全面理解java中的异常处理机制

    全面理解java中的异常处理机制

    下面小编就为大家带来一篇全面理解java中的异常处理机制。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 在Java中判断两个Long对象是否相等

    在Java中判断两个Long对象是否相等

    这篇文章主要介绍了在Java中判断两个Long对象是否相等的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Spring的事件发布与监听方式案例讲解

    Spring的事件发布与监听方式案例讲解

    今天去官网查看spring boot资料时,在特性中看见了系统的事件及监听章节,所以下面这篇文章主要给大家介绍了关于SpringBoot事件发布和监听的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Spring如何使用注解的方式创建bean

    Spring如何使用注解的方式创建bean

    这篇文章主要介绍了Spring如何使用注解的方式创建bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • spring中通过ApplicationContext getBean获取注入对象的方法实例

    spring中通过ApplicationContext getBean获取注入对象的方法实例

    今天小编就为大家分享一篇关于spring中通过ApplicationContext getBean获取注入对象的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 在java代码中获取JVM参数的方法

    在java代码中获取JVM参数的方法

    下面小编就为大家带来一篇在java代码中获取JVM参数的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 区分java中String+String和String+char

    区分java中String+String和String+char

    这篇文章主要向大家详细区分了java中String+String和String+char,感兴趣的小伙伴们可以参考一下
    2016-01-01

最新评论