UploadApi.java 4.0 KB

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