1.文件上传
1.1 pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
1.2.springmvc.xml
<!-- 文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>
1.3.controller层
@RequestMapping("upload")
public String uploadFile(HttpServletRequest request){
MultipartHttpServletRequest mhs=(MultipartHttpServletRequest) request;
MultipartFile mf=mhs.getFile("file");
try{
if(mf != null && mf.getSize() > 0){
//获取项目绝对路径
String basePath=request.getSession().getServletContext().getRealPath("/");
File upload = new File(basePath + "/upload");
if(!upload.exists()){
//文件夹不存在
upload.mkdir();
}
//设置文件名称(系统当前时间毫秒数命名文件)
String fileName=System.currentTimeMillis() +
mf.getOriginalFilename().substring(mf.getOriginalFilename().lastIndexOf("."));
//文件拷贝
mf.transferTo(new File(upload,fileName));
request.setAttribute("msg","success upload");
}
}catch (Exception e){
e.printStackTrace();
request.setAttribute("msg","failure upload");
}
return "result";
}
public void file(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception{
String fileName = file.getOriginalFilename();
File desFile = new File(request.getServletContext().getRealPath("/"),fileName);
file.transferTo(desFile);
response.getWriter().print(desFile.getAbsolutePath());
}
1.4.file.jsp
<form action="fileUp" method="post" enctype="multipart/form-data">
<input type="file" name="file"> <br>
<button type="submit"> submit </button>
</form>
2.文件下载
2.1 cobtroller
@RequestMapping("/fileDown")
public void file(HttpServletRequest request, HttpServletResponse response) throws Exception{
// String fileName = request.getParameter("fileName");
File file = new File(request.getServletContext().getRealPath("/"), "lwx.docx");
byte[] data = FileUtils.readFileToByteArray(file);
response.setContentType("application/x-msdownload;");
response.setHeader("Content-disposition", "attachment;filename="
+ new String(file.getName().getBytes(StandardCharsets.UTF_8), "ISO8859-1"));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.getOutputStream().write(data);
}