From 27b3ffa1dcf89f4dc5fdd13a96f7c985d0eba68d Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Thu, 30 Oct 2025 11:19:00 +0800
Subject: [PATCH] oss增加按【通过文件扩展名获取MIME类型】存储对象
---
ard-oss/src/main/java/com/ard/oss/service/impl/OssServiceContext.java | 39 +++++++++++++++++++++++++++++++++++++--
1 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/ard-oss/src/main/java/com/ard/oss/service/impl/OssServiceContext.java b/ard-oss/src/main/java/com/ard/oss/service/impl/OssServiceContext.java
index 9fcfba5..cc61355 100644
--- a/ard-oss/src/main/java/com/ard/oss/service/impl/OssServiceContext.java
+++ b/ard-oss/src/main/java/com/ard/oss/service/impl/OssServiceContext.java
@@ -88,7 +88,7 @@
*/
public String upload(MultipartFile file) throws IOException {
try {
- return upload(OssConfiguration.bucket, null, file);
+ return upload(OssConfiguration.bucket, file);
} catch (Exception e) {
throw new IOException(e.getMessage(), e);
}
@@ -131,10 +131,13 @@
? extractFilename(file)
: object;
+ // 通过文件扩展名获取 MIME 类型
+ String contentType = getMimeTypeByExtension(file.getOriginalFilename());
+
@Cleanup
InputStream inputStream = file.getInputStream();
// 上传文件到 Minio
- this.ossService.putObject(bucket, objectName, inputStream);
+ this.ossService.putObject(bucket, objectName, inputStream, contentType);
// ✅ 拼接永久 URL(不带 presigned 过期参数)
String baseUrl = OssConfiguration.endpoint;
@@ -165,4 +168,36 @@
}
}
+ // 获取文件 MIME 类型
+ public String getMimeTypeByExtension(String fileName) {
+ // 获取文件扩展名
+ String extension = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();
+
+ // 根据文件扩展名返回 MIME 类型
+ switch (extension) {
+ case "jpg":
+ case "jpeg":
+ return "image/jpeg";
+ case "png":
+ return "image/png";
+ case "gif":
+ return "image/gif";
+ case "pdf":
+ return "application/pdf";
+ case "txt":
+ return "text/plain";
+ case "html":
+ return "text/html";
+ case "json":
+ return "application/json";
+ case "csv":
+ return "text/csv";
+ case "zip":
+ return "application/zip";
+ // 添加更多的扩展名映射
+ default:
+ return "application/octet-stream"; // 默认 MIME 类型
+ }
+ }
+
}
--
Gitblit v1.9.3