SpringMVC 获得请求数据 -- 文件上传(单/多文件上传)

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC 获得请求数据 -- 文件上传(单/多文件上传)相关的知识,希望对你有一定的参考价值。

springmvc–文件上传和下载

1. 文件上传


1.1 文件上传客户端三要素


1.2 文件上传原理


1.3 单文件上传步骤


1.3.1 导入fileupload和io坐标

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.3</version>
        </dependency>

1.3.2 配置文件上传解析器

spring-mvc.xml

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--上传文件总大小-->
        <property name="maxUploadSize" value="5242800"/>
        <!--上传单个文件的大小-->
        <property name="maxUploadSizePerFile" value="5242800"/>
        <!--上传文件的编码类型-->
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

1.3.3 编写文件上传代码

UserController.java

package com.tian.controller;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@Controller // 把UserController托管给Spring IoC容器
@RequestMapping(value = "/user") // 如果只有value属性,可以省略value
public class UserController {
    @ResponseBody  // 不会进行页面跳转
    @RequestMapping(value = "/uploadSingleFile")
    public void uploadSingleFile(String username, MultipartFile uploadFile) throws IOException {
        System.out.println("上传用户:" + username);
        //获得上传文件的名称
        String originalFilename = uploadFile.getOriginalFilename();
        uploadFile.transferTo(new File("D:\\\\upload\\\\" + originalFilename));
    }
}

1.3.4 编写测试页面


upload.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user/uploadSingleFile" method="post" enctype="multipart/form-data">
    上传用户:<input type="text" name="username"><br/>
    上传文件:<input type="file" name="uploadFile"><br/>
    <input type="submit" value="提交">
</form>
</body>
</html>

1.3.5 说明


1.3.6 开始测试

运行结果:


1.4 多文件上传实现方式一(不推荐:代码冗余 配置繁琐)

说明:前面的步骤和单文件上传相同。

第一步:

第二步:


1.5 多文件上传方式二(推荐)

说明:前面的步骤和单文件上传相同。

第一步:

第二步:



以上是关于SpringMVC 获得请求数据 -- 文件上传(单/多文件上传)的主要内容,如果未能解决你的问题,请参考以下文章

springMVC之文件上传id固定multipartResolver

springMVC实现 MultipartFile 多文件上传,StandardMultipartHttpServletRequest上传文件,在请求中上传文件,比如上传图片

springcloud gateway 限制文件上传大小

springMVC + hadoop + httpclient 文件上传请求直接写入hdfs

SpringMVC 获得请求数据 -- 获得Servlet相关API获得请求头(@RequestHeader@CookieValue)

springboot怎么获得文件上传的地址