[Java2023] Day11.2,3-文件上传(本地存储)及调试模式

80 阅读1分钟

调试模式

启动时, 点击那个绿色的虫子

文件上传前端测试代码

  • 1.在resource目录下, 添加upload.html和测试txt文件(中国梦.txt)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>

    <form action="/upload" method="post" enctype="multipart/form-data">
        姓名: <input type="text" name="username"><br>
        年龄: <input type="text" name="age"><br>
        头像: <input type="file" name="image"><br>
        <input type="submit" value="提交">
    </form>

</body>
</html>

服务端代码

  • 1.添加控制器
package com.tlias.controller;

import com.tlias.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Slf4j
@RestController
public class UploadController {

    // 文件上传
    @PostMapping("/upload")
    public Result upload(String username, Integer age, MultipartFile image) throws IOException {
        log.info("文件上传,{},{},{}", username, age, image);

        // 原始文件名
        String originalFile = image.getOriginalFilename();

        // 构造唯一的文件名
        Integer index = originalFile.lastIndexOf(".");
        String extend = originalFile.substring(index);
        String newFilename = UUID.randomUUID().toString() + extend;

        image.transferTo(new File("D:\JAVA\upload\"+newFilename));
        return Result.success();
    }
}
  • 2.文件大小限制
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
spring.datasource.username=root
spring.datasource.password=root

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

mybatis.configuration.map-underscore-to-camel-case=true

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
  • 3.结果

image.png

image.png

image.png