SpringMVC MultipartFile 多文件/单文件上传通用类

来源:互联网 发布:写sql算研发么 编辑:程序博客网 时间:2024/05/17 06:55

SpringMVC MultipartFile 多文件/单文件上传通用类

支持多文件或者单文件上传,基于springMVC,都是自己平常用到的工具类,借于这个平台记录一下吧~

  • springmvc.xml配置支持文件上传
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        <property name="maxUploadSize" value="31457280" />        <property name="maxInMemorySize" value="4096" />        <property name="defaultEncoding" value="UTF-8"></property></bean>
  • 前端页面,使用ajax form表单提交,自行引入对应的js
<form id="addForm" >    <input id="file2" type="file" name="yhImg"><form>  $("#addForm").ajaxSubmit({        url:"",        type:"POST",        dataType:"json",        data:{             "fileFolder":"smallEBusinessType"        },        success:function(data){             layer.alert(data.errorMsg);             },        error:function(){            layer.alert("服务器繁忙,请稍后再试!");        }    }); 
  • 后台代码
@RequestMapping(value="save", produces="text/html;charset=UTF-8")public void addGetMoneyInfo(HttpServletRequest request,MdlSmallEBusinessType businessType){        JSONObject resultJson = new JSONObject();         resultJson.put("status", 0);        MutiUploadFile uploadFile = new MutiUploadFile();        try {            if(businessType.getId()==null){//新增信息                String ygImg = uploadFile.mutiupload(request,"ygImg");//员工端图片                businessType.setType_img(ygImg);                                    smallEtype.addInfo(businessType);                resultJson.put("status", 1);                resultJson.put("errcode", "1");                resultJson.put("errorMsg", "成功");                out(resultJson.toString(), response);                return;            }         } catch (Exception e) {            resultJson.put("errcode", "500");            resultJson.put("errorMsg", "服务器出错");            out(resultJson.toString(), response);            return;        }       }
  • 关键通用类 MutiUploadFile.java
package xxxxxxx;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;/** * 多文件/单文件上传通用类 * @author Levan * @time 2017年1月10日 */public class MutiUploadFile {    /**     * 多文件/单文件上传     * @param request     * @param inputName  form表单type为file的 name值,比如<input type="file" name="uploads"/>   ,inputName=uploads     * @return     * @throws Exception     */     public String  mutiupload(HttpServletRequest request,String inputName) throws Exception{            //保存文件的文件夹名称            String fileFolder = request.getParameter("fileFolder");            List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles(inputName);            String fileUrl = "";            if(files.size()==1){                for (MultipartFile file : files) {                                  fileUrl += saveFile(file, request,fileFolder);                }            }else {                for (MultipartFile file : files) {                                  fileUrl += saveFile(file, request,fileFolder)+"|";                }            }            System.out.println("文件保存成功...");            return fileUrl;     }    /**     * 生成文件名称规则:时间+ 6位随机数     * @param file      * @param request     * @return     * @throws IllegalStateException     * @throws IOException     */    private String saveFile(MultipartFile file,HttpServletRequest request,String fileFolder) throws IllegalStateException, IOException {             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");           Date date = new Date();           String month = sdf.format(date);           sdf = new SimpleDateFormat("yyyyMMddHHmmss");           date = new Date();           String now= sdf.format(date);           String path = request.getSession().getServletContext().getRealPath("uploadImg/"+fileFolder+"/"+month);           String fileName = file.getOriginalFilename();           /**随机生成六位数字**/           int co  = ((int) ((Math.random() * 9 + 1) * 100000));           String randomVal = String.valueOf(co);                                           /**获取文件的后缀**/              String suffix = fileName.substring(fileName.lastIndexOf("."));           fileName = now+"-"+randomVal+suffix;           File targetPath = new File(path);           if(!targetPath.exists())                    targetPath.mkdirs();           File targetFile = new File(path + "/" + fileName);           if(!targetFile.exists())               targetFile.createNewFile();           file.transferTo(targetFile); //普通上传!           //Thumbnails.of(file.getInputStream()).scale(1f).outputQuality(0.25f).toFile(targetFile);  //按照比例进行缩放            String fileUrl = request.getRequestURL().substring(0,request.getRequestURL().lastIndexOf("/")); //http://localhost:8080/项目名/business/           fileUrl = fileUrl.substring(0, fileUrl.lastIndexOf("/"));//http://localhost:8080/项目名           fileUrl = fileUrl+"/uploadImg/"+fileFolder +"/"+month+"/"+fileName;                               return fileUrl;    }  }

完毕!

原创粉丝点击