SpringMVC的文件上传

文件上传三要素

  1. 必须包含表单项type=“file”
  2. 表单的提交方式是post
  3. 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”
<h3>用户注册-文件上传</h3>
<form action="fu" method="post" enctype="multipart/form-data">
    姓名: <input type="text" name="name" /> <br/>
    年龄: <input type="text" name="age" /> <br/>
    头像: <input type="file" name="headImg" /> <br/>
    <input type="submit" value="注册">
</form>
添加依赖
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.3</version>
</dependency>
配置文件解析器
<!--配置文件上传解析器-->
<bean id="multipartResolver"
    		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!--上传文件的编码类型-->
    <property name="defaultEncoding" value="UTF-8"/>
    <!--文件上传的总大小(10M)-->
    <property name="maxUploadSize" value="10485600"/>
    <!--单个文件的大小(5M)-->
    <property name="maxUploadSizePerFile" value="5242800"/>
</bean>
保存文件
@RequestMapping("/upload")
@ResponseBody
public void fileUpload(String name, int age, MultipartFile headImg) throws IOException {
    //获取普通项    
    System.out.println(name);
    System.out.println(age);
    
	//处理文件上传项
    //0.判断文件是否为空
    if (!headImg.isEmpty()) {
        //1.获取上传文件的文件名称
        String filename = headImg.getOriginalFilename();  //6b.jpeg
        //2.处理文件名
        filename = new Date().getTime() + "_" + filename; //1573701830347_6b.jpeg
        //3.获取当前项目下的images文件夹的绝对路径
        String realPath = request.getServletContext().getRealPath("/images");
        //4.保存该文件
        headImg.transferTo(new File(realPath,filename));
    }
}
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页