1.常规
1.1定义一个控制类
说明:创建UploadController.java
package com.itheima.controller;
import com.itheima.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;
@Slf4j
@RestController
public class UploadController {
@PostMapping("/upload")
public Result upload(String name, Integer age, MultipartFile image) throws IOException {
log.info("文件上传{},{},{}", name, age, image);
// 将文件存储在服务器的磁盘目录中 E:\aWeb\afterWeb\javaweb\images
// 获取原始文件名
String originalFilename = image.getOriginalFilename();
// 拼接路径
image.transferTo(new File("E:\\aWeb\\afterWeb\\javaweb\\images\\" + originalFilename));
return Result.success();
}
}
1.2测试接口
1.3成功
2.优化
说明:解决上传文件名相同会被替换。使用UUID生成随机的文件名
2.1控制类
说明:定义UploadController.java
package com.itheima.controller;
import com.itheima.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 name, Integer age, MultipartFile image) throws IOException {
log.info("文件上传{},{},{}", name, age, image);
// 将文件存储在服务器的磁盘目录中 E:\aWeb\afterWeb\javaweb\images
// 获取原始文件名
String originalFilename = image.getOriginalFilename();
// 构建新的文件名
String newFileName=UUID.randomUUID().toString()+originalFilename.substring(originalFilename.lastIndexOf("."));
// 构建唯一的文件名(不能重复) uuid
// 拼接路径
image.transferTo(new File("E:\\aWeb\\afterWeb\\javaweb\\images\\" + newFileName));
return Result.success();
}
}
2.2测试
2.3 成功
2.4配置上传文件大小
说明:SpringBoot中,文件上传,默认单个文件允许最大大小为1M。需要配置才行!
#配置上传文件的大小限制
spring.servlet.multipart.max-file-size=10MB
#配置单个请求的最大 大小的限制(一次请求中是可以上传多个文件)
spring.servlet.multipa
2.5 application.properties
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123456
#配置mybatis的日志, 指定输出到控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
mybatis.configuration.map-underscore-to-camel-case=true
#配置上传文件的大小限制
spring.servlet.multipart.max-file-size=10MB
#配置单个请求的最大 大小的限制(一次请求中是可以上传多个文件)
spring.servlet.multipart.max-request-size=100MB
3.总结
说明:常见的方法