vsd格式用什么文件(vsd文件编辑方式)
程序员文章站
2023-11-29 22:22:34
mime type(content-type)mime type介绍 content-type 各种定义多用途互联网邮件扩展(mime,multipurpose internet mail exten...
mime type(content-type)
mime type介绍 content-type 各种定义
多用途互联网邮件扩展(mime,multipurpose internet mail extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ascii字符、二进制格式附件等多种格式的邮件消息。在万维网中使用的http协议中也使用了mime的框架,标准被扩展为互联网媒体类型。通常来说,浏览器通过mime type区分不同的媒体资源。目前版本:1.0。
mime type是经由ietf组织协商,以rfc形式作为建议标准发布在网上,通常只有一些在互联网上获得广泛应用的格式才会获得一个 mime type,如果是某个客户端自己定义的格式,一般只能以application/x- 开头。处理本地的文件,在没有人告诉浏览器某个文件的mime type的情况下,浏览器也会做一些默认的处理,这可能和在操作系统中给文件配置的mime type有关。
在http中,mime type类型被定义在content-type header中,每个mime类型由3部分组成:content-type: [type]/[subtype],前者是数据大类别,后者定义具体的种类。
通过文件扩展名获取contenttype
import lombok.getter;
import org.apache.commons.lang3.stringutils;
/**
* 通过文件扩展名获取contenttype
*/
@getter
public enum mimetypeenum {
aac("acc", "aac音频", "audio/aac"),
abw("abw", "abiword文件", "application/x-abiword"),
arc("arc", "存档文件", "application/x-freearc"),
avi("avi", "音频视频交错格式", "video/x-msvideo"),
azw("azw", "亚马逊kindle电子书格式", "application/vnd.amazon.ebook"),
bin("bin", "任何类型的二进制数据", "application/octet-stream"),
bmp("bmp", "windows os / 2位图图形", "image/bmp"),
bz("bz", "bzip存档", "application/x-bzip"),
bz2("bz2", "bzip2存档", "application/x-bzip2"),
csh("csh", "c-shell脚本", "application/x-csh"),
css("css", "级联样式表(css)", "text/css"),
csv("csv", "逗号分隔值(csv)", "text/csv"),
doc("doc", "微软word文件", "application/msword"),
docx("docx", "microsoft word(openxml)", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
eot("eot", "ms embedded opentype字体", "application/vnd.ms-fontobject"),
epub("epub", "电子出版物(epub)", "application/epub+zip"),
gz("gz", "gzip压缩档案", "application/gzip"),
gif("gif", "图形交换格式(gif)", "image/gif"),
htm("htm", "超文本标记语言(html)", "text/html"),
html("html", "超文本标记语言(html)", "text/html"),
ico("ico", "图标格式", "image/vnd.microsoft.icon"),
ics("ics", "icalendar格式", "text/calendar"),
jar("jar", "java存档", "application/java-archive"),
jpeg("jpeg", "jpeg图像", "image/jpeg"),
jpg("jpg", "jpeg图像", "image/jpeg"),
js("js", "javascript", "text/javascript"),
json("json", "json格式", "application/json"),
jsonld("jsonld", "json-ld格式", "application/ld+json"),
mid("mid", "乐器数字接口(midi)", "audio/midi"),
midi("midi", "乐器数字接口(midi)", "audio/midi"),
mjs("mjs", "javascript模块", "text/javascript"),
mp3("mp3", "mp3音频", "audio/mpeg"),
mpeg("mpeg", "mpeg视频", "video/mpeg"),
mpkg("mpkg", "苹果安装程序包", "application/vnd.apple.installer+xml"),
odp("odp", "opendocument演示文稿文档", "application/vnd.oasis.opendocument.presentation"),
ods("ods", "opendocument电子表格文档", "application/vnd.oasis.opendocument.spreadsheet"),
odt("odt", "opendocument文字文件", "application/vnd.oasis.opendocument.text"),
oga("oga", "ogg音讯", "audio/ogg"),
ogv("ogv", "ogg视频", "video/ogg"),
ogx("ogx", "ogg", "application/ogg"),
opus("opus", "opus音频", "audio/opus"),
otf("otf", "otf字体", "font/otf"),
png("png", "便携式网络图形", "image/png"),
pdf("pdf", "adobe 可移植文档格式(pdf)", "application/pdf"),
php("php", "php", "application/x-httpd-php"),
ppt("ppt", "microsoft powerpoint", "application/vnd.ms-powerpoint"),
pptx("pptx", "microsoft powerpoint(openxml)", "application/vnd.openxmlformats-officedocument.presentationml.presentation"),
rar("rar", "rar档案", "application/vnd.rar"),
rtf("rtf", "富文本格式", "application/rtf"),
sh("sh", "bourne shell脚本", "application/x-sh"),
svg("svg", "可缩放矢量图形(svg)", "image/svg+xml"),
swf("swf", "小型web格式(swf)或adobe flash文档", "application/x-shockwave-flash"),
tar("tar", "磁带存档(tar)", "application/x-tar"),
tif("tif", "标记图像文件格式(tiff)", "image/tiff"),
tiff("tiff", "标记图像文件格式(tiff)", "image/tiff"),
ts("ts", "mpeg传输流", "video/mp2t"),
ttf("ttf", "ttf字体", "font/ttf"),
txt("txt", "文本(通常为ascii或iso 8859- n", "text/plain"),
vsd("vsd", "微软visio", "application/vnd.visio"),
wav("wav", "波形音频格式", "audio/wav"),
weba("weba", "webm音频", "audio/webm"),
webm("webm", "webm视频", "video/webm"),
webp("webp", "webp图像", "image/webp"),
woff("woff", "web开放字体格式(woff)", "font/woff"),
woff2("woff2", "web开放字体格式(woff)", "font/woff2"),
xhtml("xhtml", "xhtml", "application/xhtml+xml"),
xls("xls", "微软excel", "application/vnd.ms-excel"),
xlsx("xlsx", "微软excel(openxml)", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
xml("xml", "xml", "application/xml"),
xul("xul", "xul", "application/vnd.mozilla.xul+xml"),
zip("zip", "zip", "application/zip"),
mime_3gp("3gp", "3gpp audio/video container", "video/3gpp"),
mime_3gp_without_video("3gp", "3gpp audio/video container doesn't contain video", "audio/3gpp2"),
mime_3g2("3g2", "3gpp2 audio/video container", "video/3gpp2"),
mime_3g2_without_video("3g2", "3gpp2 audio/video container doesn't contain video", "audio/3gpp2"),
mime_7z("7z", "7-zip存档", "application/x-7z-compressed");
//扩展名
private final string extension;
//说明
private final string explain;
//contenttype/mime类型
private final string mimetype;
/**
* @param extension 上传的文件扩展名
* @param explain 类型说明
* @param mimetype mime对应的类型
*/
mimetypeenum(string extension, string explain, string mimetype) {
this.extension = extension;
this.explain = explain;
this.mimetype = mimetype;
}
/**
* 通过扩展名获取枚举类型
*
* @param extension 扩展名
* @return 枚举类
*/
public static mimetypeenum getbyextension(string extension) {
if (stringutils.isempty(extension)) {
return null;
}
for (mimetypeenum typesenum : mimetypeenum.values()) {
if (extension.equals(typesenum.getextension())) {
return typesenum;
}
}
return null;
}
/**
* content-type常用对照
* 根据后缀获取mime
*
* @param filetype 扩展名
* @return mime类型
*/
public static string getcontenttype(string filetype) {
mimetypeenum mimetypeenum = mimetypeenum.getbyextension(filetype);
if (mimetypeenum != null) {
return mimetypeenum.getmimetype();
}
return "application/octet-stream";
}
}
根据文件获取mimetype的几种方式
<!-- hutool-all -->
<dependency>
<groupid>cn.hutool</groupid>
<artifactid>hutool-all</artifactid>
<version>5.6.5</version>
</dependency>
<!-- commons.lang3-->
<dependency>
<groupid>org.apache.commons</groupid>
<artifactid>commons-lang3</artifactid>
<version>3.7</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupid>com.alibaba</groupid>
<artifactid>fastjson</artifactid>
<version>1.2.79</version>
</dependency>
<dependency>
<groupid>net.sf.jmimemagic</groupid>
<artifactid>jmimemagic</artifactid>
<version>0.1.4</version>
</dependency>
import cn.hutool.core.io.fileutil;
import net.sf.jmimemagic.*;
import javax.activation.mimetypesfiletypemap;
import java.io.file;
import java.io.ioexception;
import java.net.filenamemap;
import java.net.urlconnection;
import java.nio.file.files;
public class mimetypedemo {
public static void main(string[] args) {
file file = fileutil.file("d:/001.jpg");
// 第一种方式
string mimetype1 = "";
try {
magic parser = new magic();
magicmatch match = parser.getmagicmatch(file, false);
mimetype1 = match.getmimetype();
} catch (magicparseexception e) {
e.printstacktrace();
} catch (magicmatchnotfoundexception e) {
e.printstacktrace();
} catch (magicexception e) {
e.printstacktrace();
}
system.out.println("第一种方式: " + mimetype1);
// 第二种方式
string mimetype2 = new mimetypesfiletypemap().getcontenttype(file);
system.out.println("第二种方式: " + mimetype2);
// 第三种方式
string mimetype3 = "";
try {
mimetype3 = files.probecontenttype(file.topath());
} catch (ioexception e) {
e.printstacktrace();
}
system.out.println("第三种方式: " + mimetype3);
// 第四种方式
filenamemap filenamemap = urlconnection.getfilenamemap();
string mimetype4 = filenamemap.getcontenttypefor(file.getparent());
system.out.println("第四种方式: " + mimetype4);
// 通过文件扩展名获取contenttype
mimetypeenum mimetypeenum = mimetypeenum.getbyextension("jpg");
system.out.println(mimetypeenum.getexplain()+ " , "+mimetypeenum.getmimetype()+ " , "+mimetypeenum.getextension());
}
}
下一篇: 国内app常见的推广渠道