#Springmvc 文件上传 使用servlet3 的 javax.servlet.http.Part API 接口实现文件上传。使用 multipart编码文件。
默认在单个请求中,只处理每个文件最大1Mb,最多10Mb的文件数据。
你可以覆盖那些值,也可以设置临时文件存储的位置(比如,存储到/tmp文件夹下)及传递数据刷新到磁盘的阀值(通过使用MultipartProperties类暴露的属性)。
如果你需要设置文件不受限制,可以设置spring.http.multipart.max-file-size属性值为-1。
#项目实例
##需求:在修改商品页面添加修改商品信息功能
##springmvc 对多部件内容的解析
一、在jsp页面配置enctype对多部件上传的支持
二、在springmvc.xml中配置multipart解析器
5242880
三、创建图片的虚拟目录
在conf/server.xml 中,添加 <Context docBase="物理目录" path="/pic" reloadable="false"/>
四、具体实现
springmvc.xml 文件的配置
5242880
editItems.jsp 的配置
controller方法
public String editItemsSubmit(Model model, HttpServletRequest request, Integer id, @ModelAttribute("itemsCustom") @Validated(value = {ValidGroup1.class}) ItemsCustom itemsCustom, BindingResult bindingResult, MultipartFile items_pic)throws Exception {...String originalFilename= items_pic.getOriginalFilename();if (items_pic != null && originalFilename!=null && originalFilename.length()>0) { //图片的存储的物理路径 String pic_path="E:\\Zen-Events\\Pictures\\tmp"; //新的图片名称 String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf(".")); //新的图片存储地址 File newFile = new File(pic_path, newFileName); //将图片写入到磁盘中 items_pic.transferTo(newFile); //将图片名称写入到数据库对象中 itemsCustom.setPic(newFileName);}
五、个人理解
通过页面上传图片: <input type="file" name="items_pic"/>
在controller中: 上传组件的文件必须以 MultipartFile 这个类型来存储,以及传递处理数据。
由此,springmvc才 可以解析这个文件。