SpringMVC实现上传下载
文件上传
概述:多数文件上传都是通过表单形式提交给后台服务器的,因此,要实现文件上传功能,就需要提供一个文件上传的表单,而该表单需要具备以下3个条件:
1、form表单的method属性设置为post
2、form表单的enctype属性设置为multipart/form-data
3、提供<input type=”file” name=”filename” />的文件上传输入框
实例代码:
<form action="后台路径" method="post" enctype="multipart/form-data" method="post">
<input type="file" name="fileName" />
<input type="submit" value="提交"/>
</form>
SpringMVC中给提供了上传的两个jar包:
commons-fileupload-1.3.2.jar
commons-io.2.5.jar
实例代码:
jsp代码:
在配置文件中添加如下代码:
编写Controller代码:
@RequestMapping("/fileUpload")
public String handlerFormUpload(@RequestParam("name") String name,
@RequestParam("uploadfile") List<MultipartFile> uploadfile,
HttpServletRequest request) {
// 判断所上传的文件是否存在
if (!uploadfile.isEmpty() && uploadfile.size() > 0) {
// 循环输出上传文件
for (MultipartFile file : uploadfile) {
// 获取上传文件的原始名称
String yuanshiFileName = file.getOriginalFilename();
// 设置上传文件的保存地址目录
String driPath = request.getServletContext().getRealPath(
"/upload/");
File filePath = new File(driPath);
// 如果保存文件的地址不存在,就先创建目录
if (!filePath.exists()) {
filePath.mkdirs();
}
// 使用UUID重新命名上传的文件名称
String newFilename = name + "_" + UUID.randomUUID() + "_"
+ yuanshiFileName;
try {
file.transferTo(new File(driPath + newFilename));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
}
}
return "success";
} else {
return "error";
}
}
文件下载