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.csdn.net/huajianjiu_/article/details/60469956