天天看點

springmvc多圖檔上傳

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