mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 07:46:40 +08:00
bugfix: 处理文件后缀名称的问题
This commit is contained in:
@@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.tika.Tika;
|
||||
import org.apache.tika.config.TikaConfig;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -55,6 +56,7 @@ public class FileService extends BaseService<FileEntity, FileRepository> {
|
||||
@Autowired private FileMapper mapper;
|
||||
@Autowired private ConversionService conversionService;
|
||||
private final Tika tika = new Tika();
|
||||
TikaConfig config = TikaConfig.getDefaultConfig();
|
||||
|
||||
@Value("${spring.profiles.active}")
|
||||
private String activateProfile;
|
||||
@@ -112,7 +114,8 @@ public class FileService extends BaseService<FileEntity, FileRepository> {
|
||||
String sortKey,
|
||||
String code,
|
||||
String remarks,
|
||||
String url, String base64) {
|
||||
String url,
|
||||
String base64) {
|
||||
|
||||
long size = 0;
|
||||
InputStream fis = null;
|
||||
@@ -127,10 +130,13 @@ public class FileService extends BaseService<FileEntity, FileRepository> {
|
||||
size = out.size();
|
||||
} else if (StringUtils.isNotBlank(base64)) {
|
||||
|
||||
fis = new ByteArrayInputStream(Base64.getDecoder().decode(base64.replace("data:image/png;base64,", "")));
|
||||
fis =
|
||||
new ByteArrayInputStream(
|
||||
Base64.getDecoder()
|
||||
.decode(base64.replace("data:image/png;base64,", "")));
|
||||
size = fis.available();
|
||||
|
||||
}else {
|
||||
} else {
|
||||
throw new BizException("文件为空");
|
||||
}
|
||||
|
||||
@@ -153,12 +159,28 @@ public class FileService extends BaseService<FileEntity, FileRepository> {
|
||||
Ctx.currentUser().getOrganizationId(),
|
||||
StringUtils.defaultIfBlank(dir, "public")));
|
||||
InputStream inputStream = fis;
|
||||
fileEntity.setObjectId(
|
||||
UUID.randomUUID() + "." + FilenameUtils.getExtension(name.replace(":", "_")));
|
||||
String extension = FilenameUtils.getExtension(name.replace(":", "_"));
|
||||
|
||||
try (inputStream) {
|
||||
fileEntity.setMimeType(tika.detect(inputStream));
|
||||
}
|
||||
|
||||
// if file ext is empty, get from mime type
|
||||
|
||||
try {
|
||||
|
||||
if (StringUtils.isBlank(extension)) {
|
||||
extension =
|
||||
config.getMimeRepository()
|
||||
.getRegisteredMimeType(fileEntity.getMimeType())
|
||||
.getExtension().replace(".", "");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("获取文件扩展名失败", e);
|
||||
}
|
||||
|
||||
fileEntity.setObjectId(UUID.randomUUID() + "." + extension);
|
||||
|
||||
String objectKey = getObjectKey(fileEntity);
|
||||
|
||||
fileEntity.setPublicUrl(uploadToOSS(objectKey, fis));
|
||||
|
||||
Reference in New Issue
Block a user