文件上传
文件上传的表单需满足以下三个条件。
- method属性设置为post。
- enctype属性设置为"multipart/form-data"
- 提供 文件上传输入框。
上传步骤
1.导入相关的包
<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.8.0</version>
</dependency>
2.配置applicationContext.xml
<!-- 文件上传配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 请求编码格式 -->
<property name="defaultEncoding" value="utf-8"/>
<!--上传文件大小上限 ,单位为字节(10485760相当于10Mb)-->
<property name="maxUploadSize" value="10485760"/>
</bean>
3.文件上传页面
<form action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data" method="post">
<%-- 加上multiple 可以进行多文件上传 --%>
<input type="file" name="file" id="file" multiple="multiple">
<input type="submit" value="upload">
</form>
4.Controller层
@RequestMapping("/upload")
public String upLoad(@RequestParam("file") List<MultipartFile> file, HttpServletRequest request) throws IOException {
//判断文件是否存在
if (!file.isEmpty() && file.size()>0){
for (MultipartFile file1 : file) {
//获取上传文件的原始名字
String filename = file1.getOriginalFilename();
//设置上传文件的保存地址目录
String dirpath = request.getSession().getServletContext().getRealPath("/upload/");
File filePath = new File(dirpath);
//如果保存地址的文件不存在,就先创建目录
if (!filePath.exists()){
filePath.mkdirs();
}
String name=UUID.randomUUID()+"_"+filename;
//使用MultpartFile接口的方法完成文件上传到指定位置
file1.transferTo(new File(dirpath+name));
}
return "show";
}
else
return "error";
}
5.文件上传存储的位置
- 在文件夹中找到对应的位置即可。