上传图片到磁盘
Posted txf0324
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传图片到磁盘相关的知识,希望对你有一定的参考价值。
1)在tomcat中配置虚拟图片服务器
2)导入fileupload的jar包
3)在springMvc.xml中配置上传组件
4)在页面上编写上传域,更改form标签的类型
5)在controller方法中可以使用MultiPartFile接口接收上传的图片
6)将文件名保存到数据库,将图片保存到磁盘中
1.1 配置虚拟目录
在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:
<Context docBase="F:\\develop\\upload\\temp" path="/pic" reloadable="false"/>
访问http://localhost:8080/pic即可访问F:\\develop\\upload\\temp下的图片。
也可以通过eclipse配置:
1.2 jar包
CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包:
1.3 配置解析器
<!-- 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
1.4 图片上传
controller:
//商品修改提交
@RequestMapping("/editItemSubmit")
public String editItemSubmit(Items items, MultipartFile pictureFile)throws Exception
//原始文件名称
String pictureFile_name = pictureFile.getOriginalFilename();
//新文件名称
String newFileName = UUID.randomUUID().toString()+pictureFile_name.substring(pictureFile_name.lastIndexOf("."));
//上传图片
File uploadPic = new java.io.File("F:/develop/upload/temp/"+newFileName);
if(!uploadPic.exists())
uploadPic.mkdirs();
//向磁盘写文件
pictureFile.transferTo(uploadPic);
页面:
form添加enctype="multipart/form-data":
<form id="itemForm"
action="$pageContext.request.contextPath /item/editItemSubmit.action"
method="post" enctype="multipart/form-data">
<input type="hidden" name="pic" value="$item.pic " />
file的name与controller形参一致:
<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>
以上是关于上传图片到磁盘的主要内容,如果未能解决你的问题,请参考以下文章
一个图片上传的servlet,传到本地磁盘,要传到服务器请修改