SpringMVC实现文件上传

      结合工作中的实现,来总结下springmvc的文件上传!以下是对单个文件和多文件上传的例子:

      applicationContext.xml的配置:

  1. <!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->  
  2.     <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"  
  3.         p:defaultEncoding="UTF-8"  
  4.         p:maxUploadSize="5400000"  
  5.         p:uploadTempDir="fileUpload/temp"  
  6.      >  
  7.     </beans:bean>  

     上传的单文件上传的Controller代码

/**
     * 上传图片
     * @param file
     * @return
     */
    @RequestMapping(value = "/uploadEnquiryCompareImg", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult<Map<String,String>> uploadEnquiryCompareImg(@RequestParam(value = "file",required = false) MultipartFile file) {

        Long size = file.getSize();

        if (size == 0l) {
            JsonResult<Map<String,String>> jsonResult = new JsonResult<>();
            jsonResult.setStatus(JsonResult.FORBID);
            jsonResult.setMsg("无图片文件!");
            return jsonResult;
        }

        String filename = file.getOriginalFilename();
        String fileType = FileUtil.getFileType(filename);
        if (!fileType.toLowerCase().equals("jpg") && !fileType.toLowerCase().equals("png") && !fileType.toLowerCase().equals("jpeg")) {
            JsonResult<Map<String,String>> jsonResult = new JsonResult<>();
            jsonResult.setStatus(JsonResult.FORBID);
            jsonResult.setMsg("图片格式不正确!");
            return jsonResult;
        }

        String attachmentPath = fileUploadWeblogic.uploadWebFile(file, GroupName.USER_BUSI_PUB);

        String path = dfsSession.getUserResourcePath() + attachmentPath;

        JsonResult<Map<String,String>> jsonResult = new JsonResult<>();
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("path",path);
        hashMap.put("attachmentPath",attachmentPath);
        hashMap.put("attachmentType", String.valueOf(AttachmentTypeEnum.PIC.getCode()));
        jsonResult.setData(hashMap);
        return jsonResult;
    }
        以下为多文件上传controller的代码:

  @RequestMapping("filesUpload")  
    public String filesUpload(@RequestParam("files") MultipartFile[] files) {  
        //判断file数组不能为空并且长度大于0  
        if(files!=null&&files.length>0){  
            //循环获取file数组中得文件  
            for(int i = 0;i<files.length;i++){  
                MultipartFile file = files[i];  
                //保存文件  
                saveFile(file);  
            }  
        }  
        // 重定向  
        return "redirect:/list.html";  
    }  

      以下为html的代码

  1. <body>  
  2.     <h2>上传多个文件 实例</h2>  
  3.   
  4.   
  5.     <form action="filesUpload.html" method="post"  
  6.         enctype="multipart/form-data">  
  7.         <p>  
  8.             选择文件:<input type="file" name="files">  
  9.         <p>  
  10.             选择文件:<input type="file" name="files">  
  11.         <p>  
  12.             选择文件:<input type="file" name="files">  
  13.         <p>  
  14.             <input type="submit" value="提交">  
  15.     </form>  
  16. </body>  
     如果是给app提供接口出现问题,上一篇文章也许能提供帮助!
    


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值