1.pom.xml 引入commons-fileupload 依赖
<!--引入commons-fileupload-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
2.springmvc.xml 配置文件上传解析器
<!--配置文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--字节单位 2097152 代表2M 这里我们后面加0 上传文件大小限制扩大10倍-->
<property name="maxUploadSize" value="20971520"/>
</bean>
3.页面上传文件
<form action="${pageContext.request.contextPath}/file/upload" method="post" enctype="multipart/form-data">
<input type="file" name="files"/>
<input type="submit" value="上传">
</form>
注意:from表单提交方式必须为post ,即merthod=“post”。 from表单enctype属性必须为multipart/form-data,即enctype=“multipart/form-data”。
4.配置后台接收的Controller(后台的处理程序)
@Controller
@RequestMapping("file")
@Scope("prototype")
public class FilesController {
@RequestMapping("upload")
public String upload(MultipartFile files, HttpServletRequest request)throws IOException {
String fileName = files.getOriginalFilename();//获取文件名
String realPath = request.getSession().getServletContext().getRealPath("/foders");//根据相对foders路径获取绝对路径
files.transferTo(new File(dirDirectory,newFileName));//上传文件
return null;
}
}
注意:files是上传的文件 ,"/foders"是要存放文件的文件夹名。用MultipartFile 接收文件时必须在springmvc.xml中配置文件上传解析器。MultipartFile 替换了File,让接受文件变的简化。
5.对文件的其他操作
public String upload(MultipartFile files, HttpServletRequest request)throws IOException {
String fileName = files.getOriginalFilename();//获取文件名
String suffix = FilenameUtils.getExtension(fileName);//获取扩展名(文件后缀)
String fileType = files.getContentType();//获取文件类型
long fileSize = files.getSize();//获取文件大小
String realPath = request.getSession().getServletContext().getRealPath("/foders");//根据相对foders路径获取绝对路径
File filePath = new File(realPath );//创建目录
if(!filePath.exists()){//如果目录不存在
filePath.mkdirs();//递归创建目录
}
}
来源:CSDN
作者:龙校长
链接:https://blog.csdn.net/qq_45361007/article/details/104300392