一、单个文件上传
1.1、文件上传默认是采用的 apache 的上传组件 commons-fileupload
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
2.2、springmvc.xml文件配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSizePerFile" value="1048576"/>
<property name="defaultEncoding" value="utf-8"/>
</bean>
- maxUploadSizePerFile:设置文件的最大上传大小
- defaultEncoding:设置默认的中文编码
- 注意:id名一定要是multipartResolver,否则CommonsMultipartResolver无法起作用。
-
2.3、index.jsp添加表单
<form action="/my/upload" method="post" enctype="multipart/form-data">
选择要上传的文件:<input type="file" name="file"/><br>
<button type="submit">单个文件的上传</button>
</form>
- 注意:enctype="multipart/form-data"必须声明,否则无法实现文件上传、下载功能。
-
2.4、MyController类
@RequestMapping("/upload")
public String doUpload(MultipartFile file){
String path = "F:\\MyProjects\\springmvc-core\\src\\main\\webapp\\WEB-INF\\imgs";
if (file.getSize()>0){
String originFile = file.getOriginalFilename();
if (originFile.endsWith("jpg") || originFile.endsWith("png")){
File myFile = new File(path,originFile);
try {
file.transferTo(myFile);
return "success";
} catch (IOException e) {
e.printStackTrace();
}
}
return "error";
}
return "error";
}
2.5、测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190403161239398.?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzA1NDU5MA==,size_16,color_FFFFFF,t_70)
2.6、结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190403161306781.)
三、多个文件上传
3.1、index.jsp
<form action="/my/upload/files" method="post" enctype="multipart/form-data">
选择要上传的文件:<input type="file" name="files"/><br>
选择要上传的文件:<input type="file" name="files"/><br>
选择要上传的文件:<input type="file" name="files"/><br>
<button type="submit">多文件上传</button>
</form>
3.2、MyController类
@RequestMapping("/upload/files")
public String doUploadFiles(@RequestParam MultipartFile[] files){
String path = "F:\\MyProjects\\springmvc-core\\src\\main\\webapp\\WEB-INF\\imgs";
for (MultipartFile file : files) {
if (file.getSize()>0){
String originFile = file.getOriginalFilename();
if (originFile.endsWith("jpg") || originFile.endsWith("png")){
File orgFile = new File(path,originFile);
try {
file.transferTo(orgFile);
} catch (IOException e) {
e.printStackTrace();
}
}else{
return "error";
}
}else{
return "error";
}
}
return "success";
}
3.3、测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190403161457355.?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzA1NDU5MA==,size_16,color_FFFFFF,t_70)
3.4、结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190403161516791.)