FileController.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.webchat.admin.controller;
  2. import com.webchat.common.bean.APIResponseBean;
  3. import com.webchat.common.bean.APIResponseBeanUtil;
  4. import com.webchat.common.service.MinioService;
  5. import com.webchat.common.util.DateUtils;
  6. import com.webchat.domain.dto.UploadResultDTO;
  7. import com.webchat.domain.vo.response.UploadResultVO;
  8. import jakarta.annotation.Resource;
  9. import jakarta.servlet.http.HttpServletRequest;
  10. import jakarta.servlet.http.HttpServletResponse;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.util.Assert;
  14. import org.springframework.web.bind.annotation.GetMapping;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import org.springframework.web.multipart.MultipartFile;
  20. import java.util.Date;
  21. @RestController
  22. @RequestMapping("/admin-service/file")
  23. public class FileController {
  24. @Autowired
  25. private MinioService minioService;
  26. @Autowired
  27. private HttpServletRequest request;
  28. @PostMapping("/upload")
  29. public APIResponseBean<UploadResultVO> upload(MultipartFile file) {
  30. String path = request.getHeader("upload-path");
  31. Assert.isTrue(StringUtils.isNotBlank(path), "上传路径不能为空");
  32. String timePackage = DateUtils.getDate2String(DateUtils.YYYYMMDD, new Date());
  33. UploadResultVO uploadResultDTO = minioService.upload(path + "/" + timePackage, file, true);
  34. return APIResponseBeanUtil.success(uploadResultDTO);
  35. }
  36. @GetMapping("/download")
  37. public void download(@RequestParam String filename, HttpServletResponse response) {
  38. minioService.download(filename, response);
  39. }
  40. }