SysFileController.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.boman.file.controller;
  2. import com.boman.domain.dto.AjaxResult;
  3. import com.boman.domain.dto.FileDto;
  4. import org.apache.commons.lang3.BooleanUtils;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.*;
  9. import org.springframework.web.multipart.MultipartFile;
  10. import com.boman.domain.dto.R;
  11. import com.boman.common.core.utils.file.FileUtils;
  12. import com.boman.file.service.ISysFileService;
  13. import com.boman.domain.SysFile;
  14. import javax.servlet.http.HttpServletResponse;
  15. import java.io.*;
  16. import java.net.URL;
  17. import java.util.List;
  18. /**
  19. * 文件请求处理
  20. *
  21. * @author ruoyi
  22. */
  23. @RestController
  24. public class SysFileController
  25. {
  26. private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
  27. @Autowired
  28. private ISysFileService sysFileService;
  29. /**
  30. * 文件上传请求
  31. */
  32. @PostMapping("upload")
  33. public R<SysFile> upload(MultipartFile file)
  34. {
  35. try
  36. {
  37. // 上传并返回访问地址
  38. List<String> urlList = sysFileService.uploadFile(file);
  39. SysFile sysFile = new SysFile();
  40. String staticPath = urlList.get(0);
  41. String absolutePath = urlList.get(1);
  42. sysFile.setName(FileUtils.getName(staticPath));
  43. sysFile.setUrl(staticPath);
  44. sysFile.setAbsolutePath(absolutePath);
  45. return R.ok(sysFile);
  46. }
  47. catch (Exception e)
  48. {
  49. log.error("上传文件失败", e);
  50. return R.fail(e.getMessage());
  51. }
  52. }
  53. /**
  54. * 通用上传请求
  55. */
  56. @PostMapping("/upload/base64")
  57. public AjaxResult uploadFileBase64(@RequestBody String base64) {
  58. try {
  59. List<String> urlList = sysFileService.uploadFileBase64(base64);
  60. String staticPath = urlList.get(0);
  61. String absolutePath = urlList.get(1);
  62. AjaxResult ajax = AjaxResult.success();
  63. ajax.put("name", FileUtils.getName(staticPath));
  64. ajax.put("url", staticPath);
  65. ajax.put("absolutePath", absolutePath);
  66. return ajax;
  67. } catch (Exception e) {
  68. return AjaxResult.error(e.getMessage());
  69. }
  70. }
  71. /**
  72. * 通用上传请求
  73. */
  74. @PostMapping("/previewAndDownload")
  75. public void previewAndDownload(@RequestBody FileDto dto, HttpServletResponse response) throws RuntimeException, IOException {
  76. sysFileService.previewAndDownload(dto, response);
  77. }
  78. }