OssUtils.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.mokasz.sample.common.util;
  2. import cn.hutool.core.date.DatePattern;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.io.FileUtil;
  5. import com.mokasz.sample.common.constant.MimeTypeConstant;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.util.ResourceUtils;
  9. import org.springframework.web.multipart.MultipartFile;
  10. import java.io.File;
  11. import java.util.Date;
  12. /**
  13. * 文件上传工具类
  14. *
  15. * @author ljj12094
  16. */
  17. @Slf4j
  18. public class OssUtils {
  19. /**
  20. * 上传
  21. *
  22. * @param file 文件内容
  23. * @param domain 文件访问域名
  24. * @param path 文件保存路径
  25. * @return 文件地址
  26. */
  27. public static String upload(MultipartFile file, String domain, String path) {
  28. String filename;
  29. try {
  30. filename = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN) + getExtension(file, true);
  31. String filePath = ResourceUtils.getURL("classpath:").getPath() + path;
  32. File dest = new File(filePath, filename);
  33. // 拷贝文件到指定路径储存
  34. file.transferTo(dest);
  35. } catch (Exception e) {
  36. log.error("上传失败", e);
  37. return null;
  38. }
  39. return String.format("http://%s/%s/%s", domain, path, filename);
  40. }
  41. /**
  42. * 获取文件名的后缀
  43. *
  44. * @param file 表单文件
  45. * @param withPoint 是否带"。"
  46. * @return 后缀名
  47. */
  48. public static String getExtension(MultipartFile file, boolean withPoint) {
  49. if (null == file) {
  50. return "";
  51. }
  52. String fileName = StringUtils.isEmpty(file.getOriginalFilename()) ? file.getName() : file.getOriginalFilename();
  53. String extension = FileUtil.extName(fileName);
  54. if (StringUtils.isEmpty(extension) && StringUtils.isNotBlank(file.getContentType())) {
  55. extension = MimeTypeConstant.geByPrefix(file.getContentType());
  56. }
  57. extension = withPoint ? "." + extension : extension;
  58. return StringUtils.lowerCase(extension);
  59. }
  60. }