MultipartFile

目录

一.什么是MultipartFile

​编辑 二.常用方法

三.常用配置 

四.使用注意点

五.指定MultipartFile的临时文件储存路径


一.什么是MultipartFile

 二.构造方法

下面举例一种,  可以点进入看源代码,有很多构造方法的.

MultipartFile multipartFile = new MockMultipartFile(fileName, inputStream);

 二.常用方法

使用transferTo(File file)方法是:将上传文件转写到服务器(或电脑硬盘)上指定的文件中;

 

三.常用配置 

## MULTIPART (MultipartProperties)
# 开启 multipart 上传功能
spring.servlet.multipart.enabled=true
# 文件写入磁盘的阈值
spring.servlet.multipart.file-size-threshold=2KB
# 最大文件大小
spring.servlet.multipart.max-file-size=200MB
# 最大请求大小
spring.servlet.multipart.max-request-size=215MB
# 文件存储所需参数
# 所有通过 REST API 上传的文件都将存储在此目录下
file.upload.path=D:/ideaProject/MusicWebSpringboot/image

#指定multipartFile临时文件存放路径,但是内置的tomcat创建的临时文件夹路径还是不变的
spring.servlet.multipart.location=临时文件路径
#指定springboot启动时内置tomcat创建的临时文件夹的路径
#server.tomcat.basedir=/data/ops/app/cms/cache

四.使用注意点

1.在上传文件慢,用异步上传时,会发现报java.io.FileNotFoundException: D:\System\Temp\tomcat.819...00.tmp (系统找不到指定的文件)异常.这是因为用异步的话在异步之前MultipartFile文件的流会自动关闭.

有两种解决办法,第一:种在异步之前把MultipartFile转换成临时文件,传临时文件

第二种:用MultipartFile.getInputStream(),传io流.

五.指定MultipartFile的临时文件储存路径

1.采用配置类

@Configuration
public class MultipartConfig {

    /**
     * 文件上传临时路径
     */
    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        String location = "自定义临时文件路径";
        File tmpFile = new File(location);
        if (!tmpFile.exists()) {
            tmpFile.mkdirs();
        }
        factory.setLocation(location);
        return factory.createMultipartConfig();
    }
}

2.可采用配置文件关于multipart的配置项来指定临时文件路径

#指定multipartFile临时文件存放路径,但是内置的tomcat创建的临时文件夹路径还是不变的
spring.servlet.multipart.location=临时文件路径
#指定springboot启动时内置tomcat创建的临时文件夹的路径
#server.tomcat.basedir=/data/ops/app/cms/cache

当采用配置项后,multipartFile的临时文件如下: 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MultipartFile是Spring框架中用于处理文件上传的接口。根据引用,MultipartFile接口有两个常用实现类,分别是MockMultipartFile和CommonsMultipartFile。 当使用CommonsMultipartFile时,可以通过传入FileItem对象来创建MultipartFile对象。根据引用,CommonsMultipartFile有一个构造方法,即CommonsMultipartFile(FileItem fileItem)。所以要使用CommonsMultipartFile创建MultipartFile,需要先获得一个FileItem对象。 根据引用的伪代码,可以看到创建FileItem对象的过程并未给出,这个过程并不在MultipartFile的范畴之内。具体的创建FileItem的方法会根据具体的框架或工具而有所不同,可能需要使用相关的文件上传库。 综上所述,要使用MultipartFile,可以选择使用CommonsMultipartFile或MockMultipartFile作为实现类,其中使用CommonsMultipartFile需要先获得一个FileItem对象,具体的FileItem的创建方法会视具体情况而定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MultipartFile的使用小结](https://blog.csdn.net/weixin_55267847/article/details/119978509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值