SpringMVC请求(下)-文件上传

简介: SpringMVC请求(下)-文件上传

在这里插入图片描述

🍁博客主页:👉 不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉 SpringMVC专栏
✨如果觉得博主的文章还不错的话,请三连支持一下博主。
🔥欢迎大佬指正,一起 学习!一起加油!

在这里插入图片描述

@TOC


一、文件上传三要素

  • 表单项type= “file"
  • 表单的提交方式是post
  • 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data".
<form action="${pageContext.request.contextPath}/user/quick21" method="post" enctype="multipart/form-data">
    名称<input type="text" name="username"><br>
    文件<input type="file" name="upload"><br>
    <input type="submit" value="提交">
</form>

二、文件上传原理

  • 当form表单修改为多部分表单时,request.getParameter0将失效
  • enctype= “application/x-www-form-urlencoded”时,form表单的正文内容格式是:key=value&key=value&key=value
  • 当form表单的enctype取值为Mutilpart/form-data时,请求正文内容就变成多部分形式。

三、单文件上传步骤

  • 导入fileupload和io坐标
  • 配置文件上传解析器
  • 编写文件上传代码

1.导入fileload和io坐标

<dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.2.2</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.11.0</version>
    </dependency>

2.配置文件上传解析器

 <!--配置文件上传解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="maxInMemorySize" value="500000"></property>
    </bean>

3.编写文件上传代码

    @RequestMapping(value = "/quick21")
    @ResponseBody  //告诉SpringMVC框架不进行视图跳转,直接进行数据响应
    public void save21(String username, MultipartFile upload) throws IOException {
        System.out.println(username);
        /*System.out.println(upload);*/
        //获得上传文件名称
        String originalFilename = upload.getOriginalFilename();
        upload.transferTo(new File("F:\\upload\\"+originalFilename));
    }

四、多文件上传

1.方式一

<form action="${pageContext.request.contextPath}/user/quick22" method="post" enctype="multipart/form-data">
    名称<input type="text" name="username"><br>
    文件<input type="file" name="upload"><br>
    文件<input type="file" name="upload1"><br>
    <input type="submit" value="提交">
</form>
@RequestMapping(value = "/quick22")
    @ResponseBody  //告诉SpringMVC框架不进行视图跳转,直接进行数据响应
    public void save22(String username, MultipartFile upload,MultipartFile upload1) throws IOException {
        System.out.println(username);
        /*System.out.println(upload);*/
        //获得上传文件名称
        String originalFilename = upload.getOriginalFilename();
        upload.transferTo(new File("F:\\upload\\"+originalFilename));
        String originalFilename1 = upload1.getOriginalFilename();
        upload.transferTo(new File("F:\\upload\\"+originalFilename1));
    }

2.方式二(数组)

<form action="${pageContext.request.contextPath}/user/quick23" method="post" enctype="multipart/form-data">
    名称<input type="text" name="username"><br>
    文件<input type="file" name="upload"><br>
    文件<input type="file" name="upload"><br>
    <input type="submit" value="提交">
</form>
 @RequestMapping(value = "/quick23")
    @ResponseBody  //告诉SpringMVC框架不进行视图跳转,直接进行数据响应
    public void save23(String username, MultipartFile[] upload) throws IOException {
        System.out.println(username);
        /*System.out.println(upload);*/
        //获得上传文件名称
        for (MultipartFile multipartFile : upload) {
            String originalFilename = multipartFile.getOriginalFilename();
            multipartFile.transferTo(new File("F:\\upload\\"+originalFilename));

        }
    }

五、知识要点

  • MVC实现数据请求方式

    • 基本类型参数
    • PoJo类型参数
    • 数组类型参数
    • 集合类型参数
  • MVC获取数据细节

    • 中文乱码问题

      • @RequestParam和@Pathvariable自定义类型转换器
      • 获得servlet相关API
      • @RequestHeader和cookievalue文件上传
相关文章
|
7月前
|
前端开发 Java 数据安全/隐私保护
SpringMVC的拦截器和文件上传
SpringMVC的拦截器和文件上传
26 0
|
5月前
SpringMVC上传文件的三种方式
SpringMVC上传文件的三种方式
|
6月前
|
SQL 前端开发 Java
SpringMVC系列(四)之SpringMVC实现文件上传和下载
SpringMVC系列(四)之SpringMVC实现文件上传和下载
|
8月前
|
移动开发 前端开发 Java
SpringMVC-文件上传
SpringMVC-文件上传
25 0
|
8月前
SpringMVC-文件下载
SpringMVC-文件下载
28 0
SpringMVC-文件下载
|
Java 开发者
springmvc.实现文件上传|学习笔记
快速学习springmvc.实现文件上传
|
JSON 缓存 前端开发
|
JSON 前端开发 Java
|
前端开发 Java Apache
springMVC文件上传
springMVC文件上传
157 0