用代码示范:
1:导入文件上传所需要的包(我的是maven环境,所以引入相关依赖)
<!-- 上传组件包 -->
<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>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
2.配置spring-mvc的文件上传部分
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
3.表单要加enctype="multipart/form-data"
<form action="/userController/fileUpload.action" method="post" enctype="multipart/form-data">
images:<input type="file" name="images" id="images"></input><br/>
<input type="submit" value="提交"></input>
</form>
4.在控制层的参数是MultipartFile类型的才可以得到image的图片和大小
/**
* 上传文件
*
* @param images
* @return
*/
@RequestMapping(value = "fileUpload")
public String fileUpload(@RequestParam("images") MultipartFile images, HttpServletRequest request) throws Exception {
//获取文件名称 和文件大小
System.out.println(images.getOriginalFilename() + "---size:" + images.getSize());
//文件的保存地址 存放地址加图片名称 a1.jpg---size:81468
File fileAddress = new File(request.getRealPath("/") + "/" + images.getOriginalFilename());
//输出看下保存地址是什么
System.out.println("fileAddress:"+fileAddress);
//fileAddress:D:\Work\IDEA\T204\myspringMvc04\target\myspringMvc04\a1.jpg
//保存 到地址中是以流的方式写入的
FileUtils.copyInputStreamToFile(images.getInputStream(), fileAddress);
return "myUser/index";
}
5.找到你上传文件的地方查看图片是否上传成功
上传成功,一个简单的springMvc的上传文件就已经完成啦!