• SpringBoot上传文件-本地存储


     1.常规

    1.1定义一个控制类

    说明:创建UploadController.java

    1. package com.itheima.controller;
    2. import com.itheima.pojo.Result;
    3. import lombok.extern.slf4j.Slf4j;
    4. import org.springframework.web.bind.annotation.PostMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. import org.springframework.web.multipart.MultipartFile;
    7. import java.io.File;
    8. import java.io.IOException;
    9. @Slf4j
    10. @RestController
    11. public class UploadController {
    12. @PostMapping("/upload")
    13. public Result upload(String name, Integer age, MultipartFile image) throws IOException {
    14. log.info("文件上传{},{},{}", name, age, image);
    15. // 将文件存储在服务器的磁盘目录中 E:\aWeb\afterWeb\javaweb\images
    16. // 获取原始文件名
    17. String originalFilename = image.getOriginalFilename();
    18. // 拼接路径
    19. image.transferTo(new File("E:\\aWeb\\afterWeb\\javaweb\\images\\" + originalFilename));
    20. return Result.success();
    21. }
    22. }

    1.2测试接口

    1.3成功

    2.优化

     说明:解决上传文件名相同会被替换。使用UUID生成随机的文件名

    2.1控制类

    说明:定义UploadController.java

    1. package com.itheima.controller;
    2. import com.itheima.pojo.Result;
    3. import lombok.extern.slf4j.Slf4j;
    4. import org.springframework.web.bind.annotation.PostMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. import org.springframework.web.multipart.MultipartFile;
    7. import java.io.File;
    8. import java.io.IOException;
    9. import java.util.UUID;
    10. @Slf4j
    11. @RestController
    12. public class UploadController {
    13. @PostMapping("/upload")
    14. public Result upload(String name, Integer age, MultipartFile image) throws IOException {
    15. log.info("文件上传{},{},{}", name, age, image);
    16. // 将文件存储在服务器的磁盘目录中 E:\aWeb\afterWeb\javaweb\images
    17. // 获取原始文件名
    18. String originalFilename = image.getOriginalFilename();
    19. // 构建新的文件名
    20. String newFileName=UUID.randomUUID().toString()+originalFilename.substring(originalFilename.lastIndexOf("."));
    21. // 构建唯一的文件名(不能重复) uuid
    22. // 拼接路径
    23. image.transferTo(new File("E:\\aWeb\\afterWeb\\javaweb\\images\\" + newFileName));
    24. return Result.success();
    25. }
    26. }

    2.2测试

    2.3 成功

    2.4配置上传文件大小

    说明:SpringBoot中,文件上传,默认单个文件允许最大大小为1M。需要配置才行!

    1. #配置上传文件的大小限制
    2. spring.servlet.multipart.max-file-size=10MB
    3. #配置单个请求的最大 大小的限制(一次请求中是可以上传多个文件)
    4. spring.servlet.multipa

    2.5 application.properties

    1. #驱动类名称
    2. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    3. #数据库连接的url
    4. spring.datasource.url=jdbc:mysql://localhost:3306/tlias
    5. #连接数据库的用户名
    6. spring.datasource.username=root
    7. #连接数据库的密码
    8. spring.datasource.password=123456
    9. #配置mybatis的日志, 指定输出到控制台
    10. mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    11. #开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
    12. mybatis.configuration.map-underscore-to-camel-case=true
    13. #配置上传文件的大小限制
    14. spring.servlet.multipart.max-file-size=10MB
    15. #配置单个请求的最大 大小的限制(一次请求中是可以上传多个文件)
    16. spring.servlet.multipart.max-request-size=100MB

    3.总结

    说明:常见的方法

     

  • 相关阅读:
    JAVA:实现Excel和PDF上下标
    laravel框架介绍(一) 开发环境配置
    OR59 字符串中找出连续最长的数字串 - 题解
    C语言丨const关键字的用法总结
    计算机毕业设计之java+javaweb的大学运动场地管理系统
    【C++】特殊类设计
    SAP ABAP 各模块的BAPI函数汇总
    STM32 CubeMX配置USB HID功能,及安装路径
    tensorflow与GPU版本对应安装问题
    一维卷积英语电影评论情感分类项目
  • 原文地址:https://blog.csdn.net/m0_62785037/article/details/133038554