springMvc附件单个上传或者多个上传

一:封装一个静态方法 

 

/**

   * 附件上传(支持各种文件)

   * @param MultipartFile 类型的file文件对象

   * @return  Map - fileName(文件名称) , newFileName(新文件名称) ,saveFilePath(上传路径)

   */

public static Map<String, String> uploadFile(MultipartFile file){

Map<String , String>  objectMap = new HashMap<String , String>(); 

       //获取前台传递的文件

       MultipartFile imgFile1  =  file;  

扫描二维码关注公众号,回复: 559567 查看本文章

       // 获取图片的文件名

        String fileName = file.getOriginalFilename();

        // 获取图片的扩展名

        String extensionName = fileName.substring(fileName.lastIndexOf(".") + 1);

        // 新的图片文件名 = 获取时间戳+"."图片扩展名

        String newFileName = String.valueOf(System.currentTimeMillis()) + "." + extensionName;

        //图片上传路径

        String picDir = Property.getValue("imagepath");;

        String saveFilePath = picDir;

        //构建文件目录

        File fileDir = new File(saveFilePath);

        //判断是否有该文件夹,没有新建

        if (!fileDir.exists()) {

            fileDir.mkdirs();

        }

//上传图片

        try {

            FileOutputStream out = new FileOutputStream(saveFilePath + "\\" + newFileName);

            // 写入文件

            out.write(imgFile1.getBytes());

            out.flush();

            out.close();

        } catch (Exception e) {

            e.printStackTrace();

        }

        objectMap.put("fileName", fileName);

        objectMap.put("saveFilePath", saveFilePath);

        objectMap.put("newFileName", newFileName);

        return objectMap;

}

二:前台

multiple :加上这个代表按住 Ctrl 能多选

<form action="方法名?fkzj=${fkzj}" id="myform2" method="post" enctype="multipart/form-data" onsubmit="return check()">

  <table>

<tr id="fujian" >

<td class="title_td" >附件</td>

<td >

<input type="file" multiple id="file" name="file" />  

                         <input type="submit" value="上传附件" />

</td>

</tr>

 

  </table>

</form>

二:后台方法

/**

 * 批量上传附件

 */

@RequestMapping(value = "/upload", method = RequestMethod.POST)

public String handleFormUpload(MultipartHttpServletRequest request,Jdjc_fkfjModel fjModel,ModelMap modelmap){     

                String fkzj=request.getParameter("fkzj");

List<MultipartFile> file = request.getFiles("file");   

for (int i = 0; i < file.size(); i++) {   

                       //调用静态方法

                Map<String , String>  imgxxMap = ListToMap.uploadFile(file.get(i));

       String imgpath=(imgxxMap.get("saveFilePath") +"/" + imgxxMap.get("newFileName"));

                 fjModel.setPath(imgpath);

                 fjModel.setName(imgxxMap.get("fileName"));

                 fjModel.setFkzj(fkzj);

                 fjModel.setZj(CommonUtil.getUUID32());

                 fjservice.add(fjModel);

}   

  //上传成功后 继续返回当前页 但许保留zj

  modelmap.put("fkzj", fkzj);

  return "/cydwgl/lhzfbs/fj_add";

    } 

猜你喜欢

转载自13996977305.iteye.com/blog/2334683