springboot上传文件的几种情况代码实现和可能存在的问题(01、只上传且上传一个文件 02、只上传且上传多个文件 03、上传文件的同时还提交其他文本信息)

本文主要介绍下springboot上传文件的几种情况的代码实现和可能存在的问题(废话不多说,主要以代码为导向同时结合存在的问题,中间会简单掺杂一些上传文件时http协议的报文结构、内容分析说明),主要分以下几种情况(注意一定要从上往下按顺序看,一些关键细节在上面篇章如果介绍过,后面就不再赘述,比如:报错了如何解决、http报文结构的简单说明,如果需要了解各种http请求报文结构可以查看https://blog.csdn.net/mayunju/article/details/113867033):

01、只上传且上传一个文件

      01-01、使用MultipartFile直接接收文件参数

      01-02、使用一个变量接收参数(变量中使用MultipartFile的实现类CommonsMultipartFile来接收文件参数)

02、只上传且上传多个文件

      02-01、使用MultipartFile[]直接接收文件参数

      02-02、使用一个变量接收参数(变量中使用MultipartFile的实现类CommonsMultipartFile[]来接收文件参数)

03、上传文件的同时还提交其他文本信息(适用于上传文件的同时还提交其它表单信息等类似场景

      03-01、上传单个文件同时还提交其他文本信息

      03-02、上传多个文件同时还提交其他文本信息

用到的工具:idea、postman、Fiddler(Windows平台抓包工具)

一、首先创建一个空的springboot项目,创建成功后结构如下:

pom.xml的核心内容如下(不贴任何多余的内容,下面其他部分亦如此):

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>springboot-upload-file</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-upload-file</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

application.yml的内容如下:

server:
  port: 8080 
  servlet:
    context-path: /springboot-upload-file

二、接下来是核心部分

首先创建一个Controller,后面的示例都写在这一个Controller中

package com.example.springbootuploadfile.uploadfile;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/")
public class UploadFileDemoController {

}

01、只上传且上传一个文件 

    01-01、使用MultipartFile直接接收参数(org.springframework.web.multipart.MultipartFile)

后台代码部分(主要是接收参数这块儿,@RequestParam("newFile")这里要注意,和前端传参要保持一致,也可以不加该注解,默认和参数名uploadFile一致,后面不再赘述

   /**
     * 单文件上传(只上传文件,不提交其他文本信息)
     */
    @PostMapping("/uploadSingleFile")
    public String uploadSingleFile(@RequestParam("newFile") MultipartFile uploadFile) {

        // 文件上传的路径
        String uploadBasePath = "D:\\uploadFile";

        File file = new File(uploadBasePath);
        if (!file.isDirectory()) {
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值