步骤:
1. 在pom.xml配置文件里加入图片上传的两个jar包。
如:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
2.在spingmvc的配置文件加入配置用来加载jar包和配置文件上传最大容量。如:
<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<propertyname="defaultEncoding" value="utf-8"/>
<!-- 最大内存大小 -->
<property name="maxInMemorySize"value="10240"/>
<!-- 最大文件大小,-1为不限制大小 -->
<property name="maxUploadSize"value="-1"/>
</bean>3.设置虚拟路径 编辑服务器根目录中 conf 中的server 文件 在<host>标签中加入
<Context path="/pic"docBase="E:\aaa" debug="0" reloadable="true"/>
注:在docBase 盘符中用的是 "\" ,否则图片回显的时候会出错,其中path指的是 虚拟路径的地址,docBase指的是映射地址。
案例:
(1)前端界面首先得先有图片上传的界面 这里我就简单的写了
其中enctype="multipart/form-data 必须得加
<html>
<head>
</head>
<body>
<form id="photo_upload"action="${pageContext.request.contextPath}/upload/file.do" method="post"enctype="multipart/form-data">
<input type="file"name="items_pic" />
<input type="submit"value="上传">
</body>
</html>
( 2 )后台 controller
@RequestMapping("/upload/file")
public String photoSubmit(Modelmodel,HttpServletRequest request,MultipartFile items_pic) throws Exception {
String originalFilename =items_pic.getOriginalFilename();
//上传图片
if(items_pic!=null &&originalFilename!=null && originalFilename.length()>0){
//存储图片的物理路径
String pic_path ="E:\\aaa\\";
//新的图片名称
String newFileName =UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
//新图片
File newFile = newFile(pic_path+newFileName);
//将内存中的数据写入磁盘
items_pic.transferTo(newFile);
//将新图片名称写到itemsCustom对象中
itemsCustom.setPic(newFileName);
}
}
至此整个图片上传的流程就完成了。如果要获取图片的,jsp页面中直接这样写:<img src="pic/图片名">,其中pic是tomcat设置的虚拟路径。