SpringBoot文件上传

依赖:ponm.xml

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

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--七牛云-->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[7.2.0,7.2.99]</version>
        </dependency>

        <!-- hutool工具类-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.3</version>
        </dependency>

       <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

配置 :application.yml

#修改端口号
server:
  port:
   8080


#配置静态资源

spring:
  web:
    resources:
      static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/file/,file:${web.url}


  # 热部署
  devtools:
    restart:
      enabled: false #开启热部署
      additional-paths: src/main/java  #重启目录

web:
  url: D://upload

文件上传页面:html

<!DOCTYPE html>
<html>
  <head>
    <title>文件上传</title>

    <meta name="keywords" content="keyword1,keyword2,keyword3"></meta>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


  </head>

  <body>
	  <form enctype="multipart/form-data" method="post" action="/upload/upload">
	    文件:<input type="file" name="upload"/>
	    姓名:<input type="text" name="name"/>
	    <input type="submit" value="上传"/>
          
	   </form>
      <div align="center">
      <img src="http://localhost:8090/1639723825884.jpg" style="width:600px;height:300px" alt="照片">
      </div>
  </body>
</html>

控制层controller:

package com.yzx.boot.springboot.controller;

import org.apache.tomcat.util.http.fileupload.FileUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.UUID;

@RestController
@RequestMapping("/upload")
public class uploadController {


    //文件上传
    @RequestMapping("/upload")
    public  String  upload(MultipartFile  upload){
        //获取当前文件名
       String originalFilename=upload.getOriginalFilename();

       //文件上传地址
       String path="D:\\upload";

       File file=new File(path);

       if(!file.exists()){
           //如果没有这个路径,就新建个
           file.mkdirs();
       }

        //System.currentTimeMillis()  时间戳生成
        //uuid生成的名字    UUID.randomUUID()
       String  filename= System.currentTimeMillis()
               +originalFilename.substring(originalFilename.lastIndexOf("."),originalFilename.length());

       //输出一下
       System.out.println(filename);

        try {
            //构建文件上传具体路径
            upload.transferTo(new File(path+"/"+filename));
        } catch (IOException e) {
            e.printStackTrace();
        }

        return filename;
    }

配置限制文件上传大小的工具类:config

package com.yzx.boot.springboot.config;


import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;

import javax.servlet.MultipartConfigElement;


@Configuration
public class uploadConfig {

    @Bean   //该注解等同于 原来 xml中 <bean id="" class=""/>
    //@Bean 和  @Compoment 功能基本是一样 , 前者作用于方法名上,将当前方法名返回的对象交给spring管理
    //后者作用于类上面 ,将 类交给spring管理 ,通过spring框架获取对象
    public MultipartConfigElement multipartConfigElement(){

        MultipartConfigFactory factory = new MultipartConfigFactory();

        //单个文件大小  KB、MB必须是大写
        factory.setMaxFileSize(DataSize.parse("10240KB"));

        //设置总上传大小
        factory.setMaxRequestSize(DataSize.parse("102400KB"));

        return factory.createMultipartConfig();
    }


}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值