SpringBoot文件上传,案例教学全教程

创建Springboot项目,需要有spring-boot-starter-web支持就可以

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

创建页面:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
    <title>单文件上传</title>
</head>
<body>
<form method="post" action="/upload" enctype="multipart/form-data">
    <p><input type="file" name="file"></p>
    <p><input type="submit" value="提交"></p>
</form>
</body>
</html>

创建控制器:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;

/**
 * @Description
 * @Author Johnny
 */
@Controller
public class UploadController {
    
    private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class);
    
    @GetMapping("/upload")
    public String upload() {
        return "upload";
    }

    @PostMapping("/upload")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file) {
        if (file.isEmpty()) {
            return "上传失败,请选择文件";
        }
        String fileName = file.getOriginalFilename();
        String filePath = "d:/dir/";
        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            LOGGER.info("上传成功");
            return "上传成功";
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
        }
        return "上传失败!";
    }
}

配置文件书写,这里默认可以不配置,不配置的话,就是不限制文件的大小

# 单个文件的最大值
spring:
  servlet:
    multipart:
      max-file-size: 1MB
      # 上传文件总的最大值
      max-request-size: 1MB

实现上传页面:

 上传完成:

 然后你去对应的磁盘路径中就能看到该文件。success

想要使用springboot项目,映射磁盘的某个地址的文件夹位置,从而访问该文件夹下的内容:

首先,创建一个配置类:自定义类,继承WebMvcConfigurerAdapter

重写里面的addResourceHandlers方法

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
 
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //文件磁盘图片url 映射
        //配置server虚拟路径,handler为前台访问的目录,locations为files相对应的本地路径
        registry.addResourceHandler("/dir/*").addResourceLocations("file:D:\\dir\\");

    }
}

第一个参数:是你需要映射的url访问的地址。

第二个参数:是你具体的物理磁盘路径地址。

最后实现访问:

 完成访问,恭喜你成功~

最后附上Gitee源码,提供给大家参考:

SpringBoot文件上传案例: SpringBoot文件上传案例https://gitee.com/vipzyj/spring-boot-file-upload-case.git如果对你有所帮助,请:点赞、留言。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值