博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc上传文件方法及注意事项
阅读量:5921 次
发布时间:2019-06-19

本文共 3358 字,大约阅读时间需要 11 分钟。

本文基于注解的配置,敬请留意  

一。springmvc为我们提供两种上传方式配置:

  1. org.springframework.web.multipart.commons.CommonsMultipartResolver (基于commons-fileupload.jar)
  2. org.springframework.web.multipart.support.StandardServletMultipartResolver (基于servlet3.0+)

 

二。配置方式基于commons-fileupload.jar

1)在先前的类DispacherConfig里添加如下代码:

1 /** 2      * 此处注意bean的名字一定起名为multipartResolver 3      * @return 4      */ 5     @Bean 6     public CommonsMultipartResolver multipartResolver() { 7         CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); 8         commonsMultipartResolver.setDefaultEncoding(propertyConfig.getUploadDefaultEncoding()); 9         commonsMultipartResolver.setMaxUploadSize(1024 * 1024 * propertyConfig.getMaxUploadSize());//字节为单位10         return commonsMultipartResolver;11     }
View Code

注意bean的名字一定为:multipartResolver,贼恶心,曾经起别的名字死活报错

2)在先前的application.properties添加如下代码:

#注意以兆为单位spring.web.max.upload.size=30 spring.web.fileupload.encoding=utf-8
View Code

3)更改propertyConfig类添加对应的属性:

@Value("${spring.web.max.upload.size}")    private Integer maxUploadSize;    @Value("${spring.web.fileupload.encoding}")    private String uploadDefaultEncoding="utf-8";    public String getUploadDefaultEncoding() {        return uploadDefaultEncoding;    }    public Integer getMaxUploadSize() {        return maxUploadSize;    }
View Code

 

三。配置方式基于servlet3.0+

此时我们需要在MyWebAppInitializer里重写 customizeRegistration 方法

1  /** 2      * servlet3.0+ 上传文件 3      * 单个文件最大5M 4      * 总请求最大20M 5      * @param registration 6      */ 7     @Override 8     protected void customizeRegistration(ServletRegistration.Dynamic registration) { 9         String temp = System.getProperty("java.io.tmp");10         MultipartConfigElement multipartConfigElement = new MultipartConfigElement(temp, 5242880, 20971520, 0);11         registration.setMultipartConfig(multipartConfigElement);12     }
View Code

 

在DispacherConfig里添加如下bean

1  @Bean2     public MultipartResolver multipartResolver() {3         StandardServletMultipartResolver standardServletMultipartResolver = new StandardServletMultipartResolver();4         return standardServletMultipartResolver;5     }
View Code

注意bean的名字一定为:multipartResolver

如果您想通过配置实现,则需在web.xml里配置代码:

 

1  
2
dispatcher
3
org.springframework.web.servlet.DispatcherServlet
4
1
5
6
0
7
c:/tmp
8
2000000
9
40000000
10
11
12
13
dispatcher
14
*.form
15
View Code

 

 

同样需要在spring-bean里的配置:

1 
3
View Code

 

四。在controller中实现文件上传

创建控制器UploadController并写相关上传代码:

1 @PostMapping("/upload") 2     public String upload(@RequestParam(name = "file")MultipartFile file) throws IOException { 3         System.out.println(file.getOriginalFilename());//获取文件名 4         FilenameUtils.getExtension(file.getOriginalFilename());//获取文件类型 5         /* 6             省略拼接文件地址代码  7             。。。 8          */ 9         file.transferTo(new File("上传目标文件地址"));10         11         return "uploadSuccess";12     }
View Code

 

转载于:https://www.cnblogs.com/niechen/p/8179154.html

你可能感兴趣的文章
模式对象管理
查看>>
Java学习方法浅谈
查看>>
Linux 命令 "cp" 代码实现简介
查看>>
开启我的编程之路
查看>>
POJ-3186_Treats for the Cows
查看>>
bzoj1010: [HNOI2008]玩具装箱toy
查看>>
四叶草——计划会议
查看>>
UVa 1339,紫书P73,词频
查看>>
JavaScript-事件
查看>>
MarkDown换行
查看>>
【温故而知新】HTTP 报文
查看>>
部分关键字段重复的记录(保留最后记录)
查看>>
svn问题终极解决办法
查看>>
快速排序——Java
查看>>
Banana PI D1(Lamobo-D1)
查看>>
音频自动增益 与 静音检测 算法 附完整C代码【转】
查看>>
Python随机数random模块学习,并实现生成6位验证码
查看>>
swoole多端口监听
查看>>
生成三维模型
查看>>
Java8新特性之一:Lambda表达式
查看>>