环境配置
配置第三方依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
配置multipartResolver的bean
<!--文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--允许文件上传的最大尺寸-->
<property name="maxUploadSize">
<value>104857600</value>
</property>
<!--设置文件放入临时文件夹的最小大小限制
低于此值,存在内存中,高于此值则生成硬盘上的临时文件-->
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>
单文件上传
前台页面
<%--文件上传表单(二进制表单)--%>
<form method="post" action="uploadFile" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">提交</button>
</form>
后台代码实现
/**
* 单文件上传
*/
@RequestMapping("uploadFile")
public String uploadFile(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
//判断文件是否为空
if(!file.isEmpty()) {
try {
//获取项目所在的路径(绝对路径)
String path=request.getServletContext().getRealPath("/");
//设置上传文件的存放目录
File uploadFile=new File(path+"/upload");
//判断文件目录是否存在,不存在则创建目录
if(!uploadFile.exists()) {
//新建目录
uploadFile.mkdir();
}
//获取上传文件的文件名
String originalFilename=file.getOriginalFilename();
//获取其后缀名
String stffix=originalFilename.substring(originalFilename.lastIndexOf("."));
//通过系统当前毫秒生成随机的文件名
String fileName=System.currentTimeMillis()+stffix;
//转存文件至指定目录(*)
file.transferTo(new File(uploadFile,fileName));
//上传成功,设置作用域
request.setAttribute("msg","上传文件成功");
} catch (IOException e) {
e.printStackTrace();
//上传失败,设置作用域
request.setAttribute("msg","上传文件失败");
}
}else {
//上传失败,设置作用域
request.setAttribute("msg","上传不存在");
}
return "result";
}