blob: 169d8e828619dae8018ba81d2b2240d32568ff16 [file] [log] [blame]
Jinf50fba62025-06-09 22:47:24 +08001package com.example.myproject.controller;
2
3import cn.hutool.core.io.FileUtil;
4import cn.hutool.core.lang.UUID;
5import com.example.myproject.common.base.Result;
6import org.springframework.web.bind.annotation.PostMapping;
7import org.springframework.web.bind.annotation.RequestMapping;
8import org.springframework.web.bind.annotation.RestController;
9import org.springframework.web.multipart.MultipartFile;
10
11import java.nio.file.Files;
12import java.nio.file.Path;
13import java.nio.file.Paths;
14
15@RestController
16@RequestMapping("/file")
17public class FileController {
18 @PostMapping
19 public Result upload(MultipartFile file){
20 try{
21 String originalFilename = file.getOriginalFilename();
22 String fileName = FileUtil.mainName(originalFilename) + UUID.fastUUID().toString() + "." + FileUtil.getSuffix(originalFilename); // 以用户ID作为文件名
23 Path path = Paths.get("uploads/" + fileName);
24 Files.createDirectories(path.getParent());
25 Files.write(path, file.getBytes());
26 String filepath = "/uploads/" + fileName;
27 return Result.ok(filepath); // 返回相对URL路径
28
29 }catch (Exception ignore){
30 return Result.failure("文件上传失败");
31 }
32
33 }
34}