目录
需求:
在修改商品的页面,添加上传商品图片的功能
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>
完整代码下载: