装备工作 :
在项目的lib文件中添加commons-fileupload-1.3.3.jar, commons-io-2.5.jar
一.单文件上传
1.在springMVC-servlet.xml(及springmvc的配置文件中)中
注册文件上传请求解析器 : (不可缺, 缺少了controller无法将request解析为MultipartHttpServletRequest)
<bean id = "multipartResolver" class = "org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
2.前端提交的文件上传表单 :
<form action="uploadimage.spring" method = "post" enctype = "multipart/form-data">
<input type = "file" name = "uploadfile"/>
<input type = "submit" value = "点击上传"/>
</form>
3.创建文件上传的controller
@Controller
public class UploadGoodImage {
private Log logger = LogFactory.getLog(getClass());
@RequestMapping(value = "uploadimage")
public void SaveGoodImage(MultipartHttpServletRequest request, HttpServletResponse response){
MultipartFile file = request.getFile("uploadfile");
String file_name = file.getOriginalFilename();
InputStream is = file.getInputStream();
.....
}
二. 多文件上传
1.如上
2.前端提交的文件上传表单
<form action="uploadimage.spring" method = "post" enctype = "multipart/form-data">
<input type = "file" name = "uploadfile1"/>
<input type = "file" name = "uploadfile2"/>
<input type = "file" name = "uploadfile3"/>
<input type = "submit" value = "点击上传"/>
</form>
3.创建文件上传的controller
@Controller
public class UploadGoodImage {
private Log logger = LogFactory.getLog(getClass());
@RequestMapping(value = "uploadimage")
public void SaveGoodImage(MultipartHttpServletRequest request, HttpServletResponse response){
Map<String, MultipartFile> fileMap = request.getFileMap();
Set<String> filenameSet = fileMap.keySet();
InputStream is = .....
}
三 .文件下载
创建controller
@Controller
public class DownLoadFile {
private Log logger = LogFactory.getLog(getClass());
@RequestMapping(value = "downloadfile")
public void DownLoad(HttpServletRequest request, HttpServletResponse response){
logger.info("进来文件下载了");
String filepath = request.getSession().getServletContext().getRealPath("good_image/trouser_image");
File file = new File(filepath, "trouser_1.jpg");
FileInputStream fis = null;
response.setHeader("Content-Disposition","attachment;fileName=" + file.getName());
response.setCharacterEncoding("application/octet-stream;charset=UTF-8");
response.setHeader("Content-Length", String.valueOf(file.length()));
OutputStream os = null;
try {
fis = new FileInputStream(file);
os = response.getOutputStream();
....
catch(IOException e){
}
以上就是我的总结,希望帮助到你