【Spring Boot深度实践】打造高效安全的文件上传服务:从JWT鉴权到持久化存储
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.example.demo.service.FileStorageService;
import io.jsonwebtoken.Claims;
@RestController
public class FileUploadController {
private final FileStorageService fileStorageService;
public FileUploadController(FileStorageService fileStorageService) {
this.fileStorageService = fileStorageService;
}
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file, Claims claims) {
if (file.isEmpty()) {
return "文件为空,请选择有效文件上传。";
}
// 从JWT token中获取用户信息
String username = (String) claims.get("sub");
// 调用服务进行文件上传
String fileUrl = fileStorageService.storeFile(file, username);
return "文件上传成功: " + fileUrl;
}
}
这段代码示例展示了如何在Spring Boot应用中接收前端传来的文件并进行处理。它首先检查文件是否为空,然后从JWT token中提取用户信息,并最终调用FileStorageService
服务的storeFile
方法来完成文件的持久化存储。这个过程体现了文件上传的典型流程,并且代码简洁易懂。
评论已关闭