前几天做了一下图片上传 现在跟大家分享一下
步骤:
1:首先准备环境 maven+ssm框架 eclipse 图片上传jar
2.在pom.xml 中加入
<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>
3.在mvc的配置文件中加入 用来加载jar包和配置文件上传最大容量
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<!-- 最大内存大小 -->
<property name="maxInMemorySize" value="10240"/>
<!-- 最大文件大小,-1为不限制大小 -->
<property name="maxUploadSize" value="-1"/>
</bean>
4.设置虚拟路径 编辑服务器根目录中 conf 中的server 文件 在<host>标签中加入
<Context path="/pic" docBase="E:\aaa" debug="0" reloadable="true"/>
注 在docBase 盘符中用的是 "\" ,否则图片回显的时候会出错
其中path指的是 虚拟路径的地址 docBase指的是映射地址
5.以上主要的配置就完成了 现在可以来实现图片上传的功能了
(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(Model model,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 = new File(pic_path+newFileName);
//将内存中的数据写入磁盘
items_pic.transferTo(newFile);
//将新图片名称写到itemsCustom中
itemsCustom.setPic(newFileName);
}
}
(3)就是这样 图片长传的功能就全部写完了