• 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.总结

    说明:常见的方法

     

  • 相关阅读:
    JVM(宋红康)学习之运行时数据区之PC寄存器
    UniPro提高集成能力 让客户专注于交付价值
    Java面试大厂名企高频真题--Spring 注解
    游戏新手村18:游戏广告渠道与广告形式
    python面试题——怎么实现时间的加减计算
    petite-vue源码剖析-逐行解读@vue/reactivity之reactive
    采用大语言模型进行查询重写——Query Rewriting via Large Language Models
    R语言使用lightgbm包构建二分类的LightGBM模型、使用predict函数和训练模型进行预测推理,预测测试数据的概率值并转化为标签
    2.6 二叉树
    [R] Underline your idea with ggplot2
  • 原文地址:https://blog.csdn.net/m0_62785037/article/details/133038554