目录
图片上传处理
1.配置虚拟目录
方法一:在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:
<Context docBase="(图片存放路径)" path="/pic" reloadable="false"/>
访问localhost:8080/pic 即可访问图片存放路径下的图片。
方法二:在eclipse的server中双击tomcat选择Modules,点击 Add External Web Modules,在弹出的对话框中选择Document base并输入Path,选择ok即可
2.加入jar包
3.配置多媒体解析器
<!-- 配置多媒体处理器 -->
<!-- 注意:这里id必须填写:multipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 最大上传文件大小 -->
<property name="maxUploadSize" value="8388608" />
</bean>
4.jsp页面
在商品修改页面,打开图片上传功能
<tr>
<td>商品图片</td>
<td>
<c:if test="${item.pic !=null}">
<img src="/pic/${item.pic}" width=100 height=100/>
<br/>
</c:if>
<input type="file" name="pictureFile"/>
</td>
</tr>
form表单中增加enctype="multipart/form-data",method改为post,get是无法处理上传图片请求的。
<!-- 上传图片是需要指定属性 enctype="multipart/form-data" -->
<form id="itemForm" action="${pageContext.request.contextPath }/updateItem.action" enctype="multipart/form-data" method="post">
5,.编写图片上传处理代码
@RequestMapping("updateItem")
public String updateItem(Item item,MultipartFile pictureFile,Model model) throws IllegalStateException, IOException{
//图片新名字
String newName = UUID.randomUUID().toString();
//图片原来名字
String oldName = pictureFile.getOriginalFilename();
String sux = oldName.substring(oldName.lastIndexOf("."));
//新建本地文件流
File file = new File("D:\\Workspace\\" + newName + sux);
//写入本地磁盘
pictureFile.transferTo(file);
//保存图片到数据库
item.setPic(newName + sux);
itemService.updateItem(item);
model.addAttribute("item", item);
model.addAttribute("msg", "修改商品信息成功");
return "itemEdit";
}