之前使用springMVC上传文件时的过程是这样的,先导入依赖,

 

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>

然后添加文件上传配置类

@Configuration
@EnableWebMvc
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
public class UploadFileConfig_yct {
    
    @Bean(name = "multipartResolver")
    public CommonsMultipartResolver multipartResolver() {
        return new CommonsMultipartResolver();
    }
}

最后在controller中上传文件

 @PostMapping(value = "upload")
    public String upload( @RequestParam("file") MultipartFile[] file_upload,HttpServletRequest request) throws IOException {
    /* 限制文件上传的大小  限制文件的扩展名  ServletContext  MIME类型   保存文件的名称  */

    /* 获取文件大小 */
    /*uploadFile.getSize();*/
    /* 获取文件名称 */
    /*uploadFile.getOriginalFilename();*/
    /* 获取文件的mime类型  */
    /*uploadFile.getContentType();*/
    /* 把文件保存到网络上 */
    /*uploadFile.getInputStream();*/
        for (MultipartFile multipartFile : file_upload) {
            multipartFile.transferTo(new File("/Users/mr.yu/Desktop/ff/" + multipartFile.getOriginalFilename()));
        }

        System.out.println("............");
        return "文件上传成功";
    }

然后使用postman测试

 以上是springMVC上传文件的示例。

但springboot上传文件略有不同,SpringMVC使用的文件上传是CommonMultipartFile,而springboot已内置的文件上传类是StandardMultipart,所以用的时候直接用就可以,只需在application.yml配置和文件上传相关的配置就可以,但是要注意的是使用postman测试的时候,

上传的类型为form-data,key的值要和MultipatFile 的参数名一样,如果不一定的话,要使用

@RequestParam("和postman里的key保持一致")

注解。

Headers里的这个Content-Type和multipart/form-data写不写好像没关系,如果懂的话,评论区可以说一下 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐