1. 程式人生 > >多檔案上傳multiparthttpservletrequest後臺接收多張圖片

多檔案上傳multiparthttpservletrequest後臺接收多張圖片

前臺程式碼: 

 

            $("#fm").form("submit", {
                url: url,
                onSubmit: function () {
                    return $(this).form("validate");
                },
                success: function (result) {
                    $.messager.alert("系統提示", "儲存成功");
                    resetValue();
                    $("#dlg").dialog("close");
                    $("#dg").datagrid("reload");
                }
            });

 <form id="fm"  method="post" enctype="multipart/form-data">
        <table cellspacing="8px">
            <tr>
                <td>商品名稱:</td>
                <td><input type="text" id="goodsName" name="goodsName"
                           class="easyui-validatebox" required="true"/>&nbsp;<font
                        color="red">*</font>
                </td>
             
              <tr>
               <td>選擇圖片:</td>
               <td>
                <input id="goodsPicture" name="goodsPicture" type="file" />
                </td>
            </tr>
                          <tr>
               <td>選擇圖片:</td>
               <td>
                <input id="goodsPicture1" name="goodsPicture1" type="file"/>
                </td>
            </tr>
        
        </table>
    </form>

 

後臺程式碼:

 

 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());

   //獲取前臺提交圖片  
         if (multipartResolver.isMultipart(request)){  
             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;  
              String filepath = "D:/test";
             Map<String, MultipartFile> fileMap = multiRequest.getFileMap();
             String fileName = null;
             for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
                 // 獲取單個檔案
                 MultipartFile mf = entity.getValue(); // 獲得原始檔名
                 fileName = mf.getOriginalFilename(); // 擷取檔案型別; 這裡可以根據檔案型別進行判斷
                 String fileType = fileName.substring(fileName.lastIndexOf('.'));
                 try {
                     // 擷取上傳的檔名稱
                     String newFileName = fileName.substring(0, fileName.lastIndexOf('.'));
                     //圖片轉換成io,存到資料庫
                     byte[] image = mf.getBytes();
                     // 拼接上傳檔案位置
                     goods.setImage(image);
                     goods.setImageName(newFileName);
                     goods.setImageType(fileType);
                    
                    
                    //儲存到伺服器
                     String newfilePath = filepath + File.separatorChar + newFileName + fileType;
                     System.out.println("拼接好的檔案路徑地址------------->>>>>>>>" + newfilePath);
                     // 重新組裝檔案路徑,用於儲存在list集合中
                     File dest = new File(filepath);
                     // 判斷資料夾不存在就建立
                     if (!dest.exists()) {
                         dest.mkdirs();
                         }
                     // 建立檔案例項
                     File uploadFile = new File(newfilePath);
                     // 判斷檔案已經存在,則刪除該檔案
                     if (uploadFile.exists()) {
                         uploadFile.delete();
                         }
                     } catch (Exception e) {
                         e.printStackTrace();
                 }
             }  
         }