parent
b61b0e3568
commit
16fee41d89
|
|
@ -3,6 +3,7 @@ package org.jetlinks.community.io.file;
|
|||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.jetlinks.community.io.utils.FileUtils;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
|
|
@ -42,48 +43,27 @@ public class FileInfo {
|
|||
if (!apiBashPath.endsWith("/")) {
|
||||
apiBashPath = apiBashPath + "/";
|
||||
}
|
||||
accessUrl = apiBashPath + "file/" + id + "?accessKey=" + accessKey().orElse("");
|
||||
accessUrl = apiBashPath + "file/" + id + "." + extension + "?accessKey=" + accessKey().orElse("");
|
||||
}
|
||||
|
||||
|
||||
public MediaType mediaType() {
|
||||
if (!StringUtils.hasText(extension)) {
|
||||
return MediaType.APPLICATION_OCTET_STREAM;
|
||||
}
|
||||
switch (extension.toLowerCase()) {
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
return MediaType.IMAGE_JPEG;
|
||||
case "png":
|
||||
return MediaType.IMAGE_PNG;
|
||||
case "gif":
|
||||
return MediaType.IMAGE_GIF;
|
||||
case "mp4":
|
||||
return MediaType.parseMediaType("video/mp4");
|
||||
case "flv":
|
||||
return MediaType.parseMediaType("video/x-flv");
|
||||
case "text":
|
||||
case "txt":
|
||||
return MediaType.TEXT_PLAIN;
|
||||
case "js":
|
||||
return MediaType.APPLICATION_JSON;
|
||||
default:
|
||||
return MediaType.APPLICATION_OCTET_STREAM;
|
||||
}
|
||||
return FileUtils.getMediaTypeByExtension(extension);
|
||||
}
|
||||
|
||||
|
||||
public boolean hasOption(FileOption option){
|
||||
if(options==null){
|
||||
public boolean hasOption(FileOption option) {
|
||||
if (options == null) {
|
||||
return false;
|
||||
}
|
||||
for (FileOption fileOption : options) {
|
||||
if(fileOption==option){
|
||||
if (fileOption == option) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public FileInfo withFileName(String fileName) {
|
||||
name = fileName;
|
||||
extension = FilenameUtils.getExtension(fileName);
|
||||
|
|
|
|||
|
|
@ -48,6 +48,13 @@ public class FileUtils {
|
|||
return getMediaTypeByExtension(FilenameUtils.getExtension(name));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据文件拓展名获取MediaType
|
||||
*
|
||||
* @param extension extension
|
||||
* @return MediaType
|
||||
*/
|
||||
public static MediaType getMediaTypeByExtension(String extension) {
|
||||
if (!StringUtils.hasText(extension)) {
|
||||
return MediaType.APPLICATION_OCTET_STREAM;
|
||||
|
|
@ -60,6 +67,13 @@ public class FileUtils {
|
|||
return MediaType.IMAGE_PNG;
|
||||
case "gif":
|
||||
return MediaType.IMAGE_GIF;
|
||||
case "svg":
|
||||
return MediaType.parseMediaType("image/svg+xml");
|
||||
case "tiff":
|
||||
case "tif":
|
||||
return MediaType.parseMediaType("image/tiff");
|
||||
case "webp":
|
||||
return MediaType.parseMediaType("image/webp");
|
||||
case "mp4":
|
||||
return MediaType.parseMediaType("video/mp4");
|
||||
case "flv":
|
||||
|
|
@ -67,8 +81,20 @@ public class FileUtils {
|
|||
case "text":
|
||||
case "txt":
|
||||
return MediaType.TEXT_PLAIN;
|
||||
case "html":
|
||||
return MediaType.TEXT_HTML;
|
||||
case "md":
|
||||
return MediaType.TEXT_MARKDOWN;
|
||||
case "css":
|
||||
return MediaType.parseMediaType("text/css");
|
||||
case "js":
|
||||
return MediaType.parseMediaType("text/javascript");
|
||||
case "xml":
|
||||
return MediaType.TEXT_XML;
|
||||
case "json":
|
||||
return MediaType.APPLICATION_JSON;
|
||||
case "pdf":
|
||||
return MediaType.APPLICATION_PDF;
|
||||
default:
|
||||
return MediaType.APPLICATION_OCTET_STREAM;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue