1.在pom.xml文件里面添加依赖
<!-- 上传组件 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
update一下
2.在springmvc.xml文件中添加
<!-- upload -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<!-- 上传文件的大小 10M -->
<value>10485760</value>
</property>
</bean>
3.新建upload.jsp文件,在里面写一个表单,然后上传的框input type为file ,再加多一个提交按钮,上传的表单必须为post请求,并且设置enctype=“multipart/form-data”,在action上写上请求地址
下面就开始上传文件的逻辑了-------首先要获取前端传输的文件–
4.新建UploadController.java文件,在里面添加上传逻辑,定义upload方法添加上注解等,使用springmvc已经封装好了的上传文件的类
5.在上面这个文件中添加以下重要代码
file.getOriginalFilename();//文件名称因为保存文件的时候使用的,文件名称
request.getServletContext().getRealPath("/");//项目路径,把文件保存到哪个目录上
String url=request.getScheme() + “?/” + request.getServerName() + “:” + request.getServerPort() + request.getContextPath();//项目URL,在页面上要显示的路径
在参数上添加上reques作用域参数
测试
可以获取到了这些内容
6.下面呢就到了保存------------------获取完前端传输的文件那就到了保存到指定的目录了
首先定义一个文件夹,用if语句判断这个文件夹存不存在如果不存在则新建,判断这个文件是否存在如果不存在也是新建
然后再用File流里面copy方法保存到指定路径
out=new FileOutputStream(path+path2+filename);
int result=FileCopyUtils.copy(file.getInputStream(),out);//将文件复制过去
Ok然后测试一波,运行程序,然后运行成功,上传成功,然后再到下面这个路径下面的upload文件夹下面看是否有这个文件
7.回显-上传成功后我们需要在页面上面回显这张图片
首先将upload方法的返回值改为string类型,然后他有一个返回值,
返回值让它指向新建的show.jsp页面
先定一个图片路径参数设为空,原理就是我们把上传成功后的这个图片的路径放到返回值上面,它的路径就是项目路径+path2文件夹名称+文件名称
然后在一起存放到前面定义的map里面
再在前端页面show.jsp页面中接收
测试
就这样,豁以了!!!!!!!!!!!!!!!!!!