UploadApi.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.caimei.controller.admin.auth;
  2. import com.caimei.service.auth.UploadService;
  3. import com.caimei.service.data.DatabaseService;
  4. import com.caimei.utils.OSSUtils;
  5. import io.swagger.annotations.Api;
  6. import io.swagger.annotations.ApiImplicitParam;
  7. import io.swagger.annotations.ApiOperation;
  8. import lombok.RequiredArgsConstructor;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.apache.commons.io.IOUtils;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.multipart.MultipartFile;
  17. import java.io.File;
  18. import java.io.FileOutputStream;
  19. import java.io.IOException;
  20. import java.io.InputStream;
  21. import java.text.SimpleDateFormat;
  22. import java.util.Date;
  23. import java.util.HashMap;
  24. import java.util.Map;
  25. import java.util.UUID;
  26. /**
  27. * @author Aslee
  28. * @date 2021/5/14
  29. */
  30. @Api(tags = "上传API")
  31. @Slf4j
  32. @RestController
  33. @RequiredArgsConstructor
  34. @RequestMapping("/upload")
  35. public class UploadApi {
  36. private static final Logger logger = LoggerFactory.getLogger(UploadApi.class);
  37. @Value("${caimei.imageDomain}")
  38. private String imageDomain;
  39. private final UploadService uploadService;
  40. /**
  41. * 上传图片
  42. */
  43. @ApiOperation("上传图片")
  44. @ApiImplicitParam(name = "file", value = "图片", required = true)
  45. @PostMapping("/image")
  46. public Map<String, Object> uploadImage(MultipartFile file) throws IOException {
  47. Map<String, Object> map = new HashMap<>(2);
  48. String saveFile;
  49. if (file != null) {
  50. // 保存文件
  51. saveFile = uploadService.saveFile(file);
  52. map.put("data", saveFile);
  53. map.put("msg", "上传成功");
  54. logger.info("【图片上传】>>>>>>>>>>>>>>>>图片上传成功:" + saveFile);
  55. } else {
  56. map.put("msg", "上传失败");
  57. logger.info("【图片上传】>>>>>>>>>>>>>>>>图片上传失败:");
  58. }
  59. return map;
  60. }
  61. @ApiOperation("上传文件")
  62. @ApiImplicitParam(name = "file", value = "文件", required = true)
  63. @PostMapping("/file")
  64. public Map<String, Object> uploadFile(MultipartFile file) throws IOException {
  65. Map<String, Object> map = new HashMap<>(2);
  66. String fileAllName = file.getOriginalFilename();
  67. String realName = fileAllName.substring(0, fileAllName.lastIndexOf("."));
  68. String fileType = fileAllName.substring(fileAllName.lastIndexOf(".") + 1);
  69. String fileName = file.getResource().getFilename();
  70. String uuid = UUID.randomUUID().toString().replaceAll("-", "");
  71. String filePath = uuid + "." + fileType;
  72. String contentType = OSSUtils.getContentType(fileAllName);
  73. log.info(">>>>>>>>>>>>>上传文件");
  74. //保存本地
  75. File uploadFile = OSSUtils.ossUpload(file);
  76. //将文件上传oss
  77. log.info("开始上传>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
  78. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  79. log.info("开始时间" + format.format(new Date()));
  80. String previewUrl = OSSUtils.ossUpload(filePath, uploadFile, contentType, null);
  81. log.info("结束时间" + format.format(new Date()));
  82. if (StringUtils.isNotEmpty(previewUrl)) {
  83. map.put("previewUrl", previewUrl);
  84. map.put("downloadUrl", filePath);
  85. map.put("fileName", fileName);
  86. map.put("msg", "上传成功");
  87. logger.info(">>>>>>>>>>>>>>>>文件上传成功:" + previewUrl);
  88. } else {
  89. map.put("msg", "上传失败");
  90. logger.info(">>>>>>>>>>>>>>>>文件上传失败:");
  91. }
  92. return map;
  93. }
  94. }