HTML5类型为file的input可以支持上传多张图片,只需要添加multiple属性:
<input type="file" name="file" multiple="multiple"/>
controller中处理方法:
形参添加 HttpServletRequest request
RequestMapping(value = "/product_save", method = RequestMethod.POST)
public String saveProduct(Product product, BindingResult bindingResult, HttpServletRequest request,
RedirectAttributes redirectAttributes) throws Exception {
处理方法
List<MultipartFile> files = null;
//得到多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//判断request是否有文件上传,即多部分
if(multipartResolver.isMultipart(request)){
//转换为多部分request
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
//取得multipartRequest中的所有文件
files = multipartRequest.getFiles("file");//file为页面file类型input的name
}
if(files != null && files.size() >0 ){
//图片服务器路径 String file_path = "D:\\Github\\uploadFiles\\"; for(MultipartFile file : files){ if(file != null && file.getOriginalFilename() != null && file.getOriginalFilename().length()>0){ //原始文件名 String originalFileName = file.getOriginalFilename(); //创建新文件,路径为:图片服务器路径+新文件名 File newFile = new File(file_path + "\\" + originalFileName); //将内存中的数据写入磁盘 file.transferTo(newFile);
//下面可以把图片在虚拟图片服务器的路径信息保存到数据库
//图片信息 Picture picture = new Picture(); picture.setPicName(originalFileName.substring(0, originalFileName.lastIndexOf("."))); picture.setPicPath(originalFileName);</pre><pre class="java" name="code">
//保存picture 代码省略 } }
若是直接把图片保存到数据库,可采用类似思路处理file。
相关文章:http://blog.youkuaiyun.com/huajianjiu_/article/details/60469956