1. 文件上传
@Controller
public class UploadController {
@RequestMapping("/upload")
public String fileUpload(@RequestParam("file") CommonsMultipartFile file,
HttpServletRequest request) {
if (!ServletFileUpload.isMultipartContent(request)) {
request.setAttribute("msg","非法文件");
return "forward:/message.jsp";
}
String path = request.getServletContext().getRealPath("./WEB-INF/upload");
File fileDir = new File(path);
if (!fileDir.exists()) {
fileDir.mkdir();
}
System.out.println("上传文件保存地址:"+ fileDir);
try {
file.transferTo(new File(fileDir + File.separator + file.getOriginalFilename()));
request.setAttribute("msg","文件上传成功!");
} catch (IOException e) {
request.setAttribute("msg","文件上传失败!");
e.printStackTrace();
}
return "forward:/message.jsp";
}
}
2. 文件下载
@Controller
public class downloadController {
@RequestMapping("/download/{filename:.+}")
public void fileUpload(@PathVariable("filename") String filename,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String path = request.getServletContext().getRealPath("./WEB-INF/upload");
response.reset();
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(filename, "utf-8"));
File file = new File(path, filename);
FileInputStream fs = new FileInputStream(file);
ServletOutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fs.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
fs.close();
}
}