Tlias 项目文件上传
前端

- enctype 如果是默认值, 仅仅提交文件名

- 文本 第三项是可读的, 其他的是二进制,乱码;
接受
- 普通表单 , post 形参接受

- 文件类型

存储
本地存储
@Slf4j
@RestController
public class UploadController {
@PostMapping("/upload")
public Result upload( String name, Integer age, MultipartFile image) throws IOException {
log.info("upload image{},{},{}", name, age, image);
// 获取文件名
String originalFilename = image.getOriginalFilename();
int index = originalFilename.lastIndexOf(".");
String suffix = originalFilename.substring(index);
String newFileName = UUID.randomUUID().toString() + suffix;
File file = new File("D:\\BaiduNetdiskDownload\\java\\"+newFileName);
image.transferTo(file);
return Result.success();
}
}
#单个文件大小
spring.servlet.multipart.max-file-size=10MB
#单次请求(一个请求可以上传多个文件)
spring.servlet.multipart.max-request-size=100MB

示例
org.hzl.utils.ImageSaver 类, 标记 Component 使用容器接收
@Slf4j
@Component
public class ImageSaver {
public String save(MultipartFile image) throws IOException {
log.info("upload image{}", image);
// 获取文件名
String originalFilename = image.getOriginalFilename();
int index = originalFilename.lastIndexOf(".");
String suffix = originalFilename.substring(index);
String newFileName = UUID.randomUUID().toString() + suffix;
File file = new File("D:\\BaiduNetdiskDownload\\java\\" + newFileName);
image.transferTo(file);
return file.getAbsolutePath();
}
}
org.hzl.controller.UploadController
@Slf4j
@RestController
public class UploadController {
@Autowired
private ImageSaver imageSaver;
@PostMapping("/upload")
public Result upload( String name, Integer age, MultipartFile image) throws IOException {
String url = imageSaver.save(image);
return Result.success(url);
}
}