Spring MVC 多文件上传

来源:互联网 发布:linux文件读写权限 编辑:程序博客网 时间:2024/05/23 13:11

配置SpringMVC配置文件

<!-- 文件上传 -->    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        <property name="defaultEncoding" value="UTF-8"></property>    </bean>

前台form表单

<form method="post" enctype="multipart/form-data" action="">    <input type="hidden" name="method" value="add">    <div>        <label for="a_idPicPath">证件照:</label>        <input type="file" name="attachs" id="a_idPicPath"/>    </div>    <div>        <label for="a_workPicPath">证件照:</label>        <input type="file" name="attachs" id="a_workPicPath"/>    </div>    <div class="providerAddBtn">        <input type="button" name="add" id="add" value="保存" >    </div></form>

注意:实现文件上传method必须为post,必须设置form表单的enctype为multipart/form-data,多文件上传时文件域name属性要一致

后台实现

@RequestMapping(value="/add",method=RequestMethod.POST)//提交方式必须是post    public String add(HttpServletRequest request,HttpSession session,            @RequestParam(value="attachs", required=false) MultipartFile[] attachs){        boolean flag = true;        //文件验证        for (int i = 0; i < attachs.length; i++) {            MultipartFile attach = attachs[i];            if (!attach.isEmpty()) {                String oldFileName = attach.getOriginalFilename();//原文件名                String prefix = FilenameUtils.getExtension(oldFileName);//文件后缀名                long fileSize = attach.getSize();//文件大小                String serverPath = session.getServletContext().                        getRealPath("statics" + File.separator + "uploadFile");//服务器上传路径                int maxFileSize = 500000;//文件大小限制                if (fileSize > maxFileSize) {                    flag = false;                    request.setAttribute(errorInfo, "文件上传大小不得超过500K");                }else if (prefix.equalsIgnoreCase("jpg")//文件类型限制                            || prefix.equalsIgnoreCase("png")                            || prefix.equalsIgnoreCase("jpeg")                            || prefix.equalsIgnoreCase("pneg")) {                    String newFileName = System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"_Personal.jpg";//生成新的统一规范文件名                    File file = new File(serverPath, newFileName);                    if(!file.exists()){                        file.mkdirs();//创建文件                    }                    try {                        attach.transferTo(file);//把MultipartFile流中信息写入到新创建的文件                    } catch (Exception e) {                        request.setAttribute(errorInfo, "上传文件失败");                        flag = false;                    }                }else {                    request.setAttribute(errorInfo, "上传文件格式不正确");                    flag = false;                }            }        }        if (flag) {            //执行操作        }    }
原创粉丝点击