SpringMvc上传本地图片保存数据库并实时显示
需求:
在修改商品的页面,添加上传商品图片的功能
springmvc中多部件类型解析
在页面form中提交enctype="multipart/form-data"的数据时,需要视频日那个女侠对multipart类型的数据进行解析。
步骤1
添加必须jar包
步骤2
在springmvc.xml文件中配置multipart类型解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--设置字符编码防止文件名乱码--> <property name="defaultEncoding" value="utf-8"/> <!--设置单个上传文件的大小,单位是字节b--> <property name="maxUploadSize" value="1048576"/> </bean>
步骤3
写控制器接口
@RequestMapping("/fileUpload.do") public String upload(@RequestParam("file") MultipartFile file,Equipment equipment, HttpServletRequest request) throws Exception { /** 项目目录 */ String filePath = request.getServletContext().getRealPath("/"); System.out.println("文件路径:" + filePath); file.transferTo(new File(filePath + "upload/" + file.getOriginalFilename())); equipment.setPhotos("http://127.0.0.1:8080/EquipmentSys_war_exploded/upload/"+file.getOriginalFilename()); if (equipment.getId() == null) { equipmentService.add(equipment); } else { equipmentService.update(equipment); } return "redirect:/equipment/list.do"; }
步骤4
写jsp代码
<form class="form-horizontal" method="post" action="${pageContext.request.contextPath}/equipment/fileUpload.do" onsubmit="return chechForm()" enctype="multipart/form-data"> <div class="form-group"> <label class="col-sm-2 control-label">设备描述:</label> <div class="col-sm-10"> <textarea class="form-control" rows="4" id="remark" name="remark">${equipment.remark}</textarea> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">设备照片:</label> <div class="col-sm-10"> <input id="file" type="file" name="file"> <br/> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <input type="hidden" id="id" name="id" value="${equipment.id}"/> <button type="submit" class="btn btn-primary">保存</button> <button type="button" class="btn btn-primary" onclick="resetValue()">重置</button> <font color="red" id="error"></font> </div> </div> </form>
上一篇:
通过多线程提高代码的执行效率例子