各种类型文件的Content-Type

本文详细介绍了Content-Type的概念及其在Web开发中的应用,特别是如何通过设置不同的Content-Type来改变浏览器对文件的处理方式。此外,还列举了Microsoft Office文件的MIME类型。

介绍

Content-Type,即内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。

ContentType属性指定响应的 HTTP内容类型。如果未指定 ContentType,默认为TEXT/HTML。

protected HttpServletResponse res() {
	HttpServletResponse response = ServletActionContext.getResponse();

	response.setCharacterEncoding("utf-8");
	response.setContentType("text/html;charset=utf-8");
	return response;
}

Spring MVC中具体运用,点击导出PDF文件:

response.setCharacterEncoding("utf-8");
response.setContentType("application/pdf");

 

What are the Microsoft Office MIME Types?

 

Ext

MIME Type

.doc

application/msword

.dot

application/msword

.docx

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.dotx

application/vnd.openxmlformats-officedocument.wordprocessingml.template

.docm

application/vnd.ms-word.document.macroEnabled.12

.dotm

application/vnd.ms-word.template.macroEnabled.12

.xls

application/vnd.ms-excel

.xlt

application/vnd.ms-excel

.xla

application/vnd.ms-excel

.xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.xltx

application/vnd.openxmlformats-officedocument.spreadsheetml.template

.xlsm

application/vnd.ms-excel.sheet.macroEnabled.12

.xltm

application/vnd.ms-excel.template.macroEnabled.12

.xlam

application/vnd.ms-excel.addin.macroEnabled.12

.xlsb

application/vnd.ms-excel.sheet.binary.macroEnabled.12

.ppt

application/vnd.ms-powerpoint

.pot

application/vnd.ms-powerpoint

.pps

application/vnd.ms-powerpoint

.ppa

application/vnd.ms-powerpoint

.pptx

application/vnd.openxmlformats-officedocument.presentationml.presentation

.potx

application/vnd.openxmlformats-officedocument.presentationml.template

.ppsx

application/vnd.openxmlformats-officedocument.presentationml.slideshow

.ppam

application/vnd.ms-powerpoint.addin.macroEnabled.12

.pptm

application/vnd.ms-powerpoint.presentation.macroEnabled.12

.potm

application/vnd.ms-powerpoint.template.macroEnabled.12

.ppsm

application/vnd.ms-powerpoint.slideshow.macroEnabled.12

 

 

 

参考文档:

1. http://qd5.iteye.com/blog/1564040

2. http://filext.com/faq/office_mime_types.php

3. http://tool.oschina.net/commons

String filePath=""; File file=new File(filePath); //解决乱码问题 String filename=URLEncoder.encode(file.getName(),"utf-8"); //重置输出流 response.reset(); Response.AddHeader("Content-Disposition", "attachment;filename="+filename);//设置文件名 response.addHeader("Content-Length",file.length);//设置下载文件大小 response.setContentType("application/octet-stream");//设置文件类型 OutputStream toClient=new BufferedOuntputStream( response.getOutputStream() );//获取二进制输出流 //读取文件数据 InputStream fis=new BufferedInputStream(new FileInputStream(filePath)); byte[] buffer=new byte[file.length()]; fis.read(buffer); fis.close(); //输出文件数据 toClient.write(buffer); toClient.close(); 文件类型如下: ".*"="application/octet-stream" ".001"="application/x-001" ".301"="application/x-301" ".323"="text/h323" ".906"="application/x-906" ".907"="drawing/907" ".a11"="application/x-a11" ".acp"="audio/x-mei-aac" ".ai"="application/postscript" ".aif"="audio/aiff" ".aifc"="audio/aiff" ".aiff"="audio/aiff" ".anv"="application/x-anv" ".asa"="text/asa" ".asf"="video/x-ms-asf" ".asp"="text/asp" ".asx"="video/x-ms-asf" ".au"="audio/basic" ".avi"="video/avi" ".awf"="application/vnd.adobe.workflow" ".biz"="text/xml" ".bmp"="application/x-bmp" ".bot"="application/x-bot" ".c4t"="application/x-c4t" ".c90"="application/x-c90" ".cal"="application/x-cals" ".cat"="application/vnd.ms-pki.seccat" ".cdf"="application/x-netcdf" ".cdr"="application/x-cdr" ".cel"="application/x-cel" ".cer"="application/x-x509-ca-cert" ".cg4"="application/x-g4" ".cgm"="application/x-cgm" ".cit"="application/x-cit" ".class"="java/*" ".cml"="text/xml" ".cmp"="application/x-cmp" ".cmx"="application/x-cmx" ".cot"="application/x-cot" ".crl"="application/pkix-crl" ".crt"="application/x-x509-ca-cert" ".csi"="application/x-csi" ".css"="text/css" ".cut"="application/x-cut" ".dbf"="application/x-dbf" ".dbm"="application/x-dbm" ".dbx"="application/x-dbx" ".dcd"="text/xml" ".dcx"="application/x-dcx" ".der"="application/x-x509-ca-cert" ".dgn"="application/x-dgn" ".dib"="application/x-dib" ".dll"="application/x-msdownload" ".doc"="application/msword" ".dot"="application/msword" ".drw"="application/x-drw" ".dtd"="text/xml" ".dwf"="Model/vnd.dwf" ".dwf"="application/x-dwf" ".dwg"="application/x-dwg" ".dxb"="application/x-dxb" ".dxf"="application/x-dxf" ".edn"="application/vnd.adobe.edn" ".emf"="application/x-emf" ".eml"="message/rfc822" ".ent"="text/xml" ".epi"="application/x-epi" ".eps"="application/x-ps" ".eps"="application/postscript" ".etd"="application/x-ebx" ".exe"="application/x-msdownload" ".fax"="image/fax" ".fdf"="application/vnd.fdf" ".fif"="application/fractals" ".fo"="text/xml" ".frm"="application/x-frm" ".g4"="application/x-g4" ".gbr"="application/x-gbr" ".gcd"="application/x-gcd" ".gif"="image/gif" ".gl2"="application/x-gl2" ".gp4"="application/x-gp4" ".hgl"="application/x-hgl" ".hmr"="application/x-hmr" ".hpg"="application/x-hpgl" ".hpl"="application/x-hpl" ".hqx"="application/mac-binhex40" ".hrf"="application/x-hrf" ".hta"="application/hta" ".htc"="text/x-component" ".htm"="text/html" ".html"="text/html" ".htt"="text/webviewhtml" ".htx"="text/html" ".icb"="application/x-icb" ".ico"="image/x-icon" ".ico"="application/x-ico" ".iff"="application/x-iff" ".ig4"="application/x-g4" ".igs"="application/x-igs" ".iii"="application/x-iphone" ".img"="application/x-img" ".ins"="application/x-internet-signup" ".isp"="application/x-internet-signup" ".IVF"="video/x-ivf" ".java"="java/*" ".jfif"="image/jpeg" ".jpe"="image/jpeg" ".jpe"="application/x-jpe" ".jpeg"="image/jpeg" ".jpg"="image/jpeg" ".jpg"="application/x-jpg" ".js"="application/x-javascript" ".jsp"="text/html" ".la1"="audio/x-liquid-file" ".lar"="application/x-laplayer-reg" ".latex"="application/x-latex" ".lavs"="audio/x-liquid-secure" ".lbm"="application/x-lbm" ".lmsff"="audio/x-la-lms" ".ls"="application/x-javascript" ".ltr"="application/x-ltr" ".m1v"="video/x-mpeg" ".m2v"="video/x-mpeg" ".m3u"="audio/mpegurl" ".m4e"="video/mpeg4" ".mac"="application/x-mac" ".man"="application/x-troff-man" ".math"="text/xml" ".mdb"="application/msaccess" ".mdb"="application/x-mdb" ".mfp"="application/x-shockwave-flash" ".mht"="message/rfc822" ".mhtml"="message/rfc822" ".mi"="application/x-mi" ".mid"="audio/mid" ".midi"="audio/mid" ".mil"="application/x-mil" ".mml"="text/xml" ".mnd"="audio/x-musicnet-download" ".mns"="audio/x-musicnet-stream" ".mocha"="application/x-javascript" ".movie"="video/x-sgi-movie" ".mp1"="audio/mp1" ".mp2"="audio/mp2" ".mp2v"="video/mpeg" ".mp3"="audio/mp3" ".mp4"="video/mpeg4" ".mpa"="video/x-mpg" ".mpd"="application/vnd.ms-project" ".mpe"="video/x-mpeg" ".mpeg"="video/mpg" ".mpg"="video/mpg" ".mpga"="audio/rn-mpeg" ".mpp"="application/vnd.ms-project" ".mps"="video/x-mpeg" ".mpt"="application/vnd.ms-project" ".mpv"="video/mpg" ".mpv2"="video/mpeg" ".mpw"="application/vnd.ms-project" ".mpx"="application/vnd.ms-project" ".mtx"="text/xml" ".mxp"="application/x-mmxp" ".net"="image/pnetvue" ".nrf"="application/x-nrf" ".nws"="message/rfc822" ".odc"="text/x-ms-odc" ".out"="application/x-out" ".p10"="application/pkcs10" ".p12"="application/x-pkcs12" ".p7b"="application/x-pkcs7-certificates" ".p7c"="application/pkcs7-mime" ".p7m"="application/pkcs7-mime" ".p7r"="application/x-pkcs7-certreqresp" ".p7s"="application/pkcs7-signature" ".pc5"="application/x-pc5" ".pci"="application/x-pci" ".pcl"="application/x-pcl" ".pcx"="application/x-pcx" ".pdf"="application/pdf" ".pdf"="application/pdf" ".pdx"="application/vnd.adobe.pdx" ".pfx"="application/x-pkcs12" ".pgl"="application/x-pgl" ".pic"="application/x-pic" ".pko"="application/vnd.ms-pki.pko" ".pl"="application/x-perl" ".plg"="text/html" ".pls"="audio/scpls" ".plt"="application/x-plt" ".png"="image/png" ".png"="application/x-png" ".pot"="application/vnd.ms-powerpoint" ".ppa"="application/vnd.ms-powerpoint" ".ppm"="application/x-ppm" ".pps"="application/vnd.ms-powerpoint" ".ppt"="application/vnd.ms-powerpoint" ".ppt"="application/x-ppt" ".pr"="application/x-pr" ".prf"="application/pics-rules" ".prn"="application/x-prn" ".prt"="application/x-prt" ".ps"="application/x-ps" ".ps"="application/postscript" ".ptn"="application/x-ptn" ".pwz"="application/vnd.ms-powerpoint" ".r3t"="text/vnd.rn-realtext3d" ".ra"="audio/vnd.rn-realaudio" ".ram"="audio/x-pn-realaudio" ".ras"="application/x-ras" ".rat"="application/rat-file" ".rdf"="text/xml" ".rec"="application/vnd.rn-recording" ".red"="application/x-red" ".rgb"="application/x-rgb" ".rjs"="application/vnd.rn-realsystem-rjs" ".rjt"="application/vnd.rn-realsystem-rjt" ".rlc"="application/x-rlc" ".rle"="application/x-rle" ".rm"="application/vnd.rn-realmedia" ".rmf"="application/vnd.adobe.rmf" ".rmi"="audio/mid" ".rmj"="application/vnd.rn-realsystem-rmj" ".rmm"="audio/x-pn-realaudio" ".rmp"="application/vnd.rn-rn_music_package" ".rms"="application/vnd.rn-realmedia-secure" ".rmvb"="application/vnd.rn-realmedia-vbr" ".rmx"="application/vnd.rn-realsystem-rmx" ".rnx"="application/vnd.rn-realplayer" ".rp"="image/vnd.rn-realpix" ".rpm"="audio/x-pn-realaudio-plugin" ".rsml"="application/vnd.rn-rsml" ".rt"="text/vnd.rn-realtext" ".rtf"="application/msword" ".rtf"="application/x-rtf" ".rv"="video/vnd.rn-realvideo" ".sam"="application/x-sam" ".sat"="application/x-sat" ".sdp"="application/sdp" ".sdw"="application/x-sdw" ".sit"="application/x-stuffit" ".slb"="application/x-slb" ".sld"="application/x-sld" ".slk"="drawing/x-slk" ".smi"="application/smil" ".smil"="application/smil" ".smk"="application/x-smk" ".snd"="audio/basic" ".sol"="text/plain" ".sor"="text/plain" ".spc"="application/x-pkcs7-certificates" ".spl"="application/futuresplash" ".spp"="text/xml" ".ssm"="application/streamingmedia" ".sst"="application/vnd.ms-pki.certstore" ".stl"="application/vnd.ms-pki.stl" ".stm"="text/html" ".sty"="application/x-sty" ".svg"="text/xml" ".swf"="application/x-shockwave-flash" ".tdf"="application/x-tdf" ".tg4"="application/x-tg4" ".tga"="application/x-tga" ".tif"="image/tiff" ".tif"="application/x-tif" ".tiff"="image/tiff" ".tld"="text/xml" ".top"="drawing/x-top" ".torrent"="application/x-bittorrent" ".tsd"="text/xml" ".txt"="text/plain" ".uin"="application/x-icq" ".uls"="text/iuls" ".vcf"="text/x-vcard" ".vda"="application/x-vda" ".vdx"="application/vnd.visio" ".vml"="text/xml" ".vpg"="application/x-vpeg005" ".vsd"="application/vnd.visio" ".vsd"="application/x-vsd" ".vss"="application/vnd.visio" ".vst"="application/vnd.visio" ".vst"="application/x-vst" ".vsw"="application/vnd.visio" ".vsx"="application/vnd.visio" ".vtx"="application/vnd.visio" ".vxml"="text/xml" ".wav"="audio/wav" ".wax"="audio/x-ms-wax" ".wb1"="application/x-wb1" ".wb2"="application/x-wb2" ".wb3"="application/x-wb3" ".wbmp"="image/vnd.wap.wbmp" ".wiz"="application/msword" ".wk3"="application/x-wk3" ".wk4"="application/x-wk4" ".wkq"="application/x-wkq" ".wks"="application/x-wks" ".wm"="video/x-ms-wm" ".wma"="audio/x-ms-wma" ".wmd"="application/x-ms-wmd" ".wmf"="application/x-wmf" ".wml"="text/vnd.wap.wml" ".wmv"="video/x-ms-wmv" ".wmx"="video/x-ms-wmx" ".wmz"="application/x-ms-wmz" ".wp6"="application/x-wp6" ".wpd"="application/x-wpd" ".wpg"="application/x-wpg" ".wpl"="application/vnd.ms-wpl" ".wq1"="application/x-wq1" ".wr1"="application/x-wr1" ".wri"="application/x-wri" ".wrk"="application/x-wrk" ".ws"="application/x-ws" ".ws2"="application/x-ws" ".wsc"="text/scriptlet" ".wsdl"="text/xml" ".wvx"="video/x-ms-wvx" ".xdp"="application/vnd.adobe.xdp" ".xdr"="text/xml" ".xfd"="application/vnd.adobe.xfd" ".xfdf"="application/vnd.adobe.xfdf" ".xhtml"="text/html" ".xls"="application/vnd.ms-excel" ".xls"="application/x-xls" ".xlw"="application/x-xlw" ".xml"="text/xml" ".xpl"="audio/scpls" ".xq"="text/xml" ".xql"="text/xml" ".xquery"="text/xml" ".xsd"="text/xml" ".xsl"="text/xml" ".xslt"="text/xml" ".xwd"="application/x-xwd" ".x_b"="application/x-x_b" ".x_t"="application/x-x_t"
<think>首先,用户的问题是:“我想获取下载文件content-type类型 请问如何确定下载文件Content-Type 类型”。这涉及到HTTP响应中的Content-Type头部。 从系统指令中,我需要: - 使用中文回答。 - 结构清晰,逐步解决问题。 - 行内数学表达式用$...$,独立公式用$$...$$,但这里可能不涉及数学公式。 - 生成相关问题。 - 在引用的段落末尾添加引用标识,如[^1]。 参考的引用: - 引用[1]:解释了Content-Type是什么,用于说明消息的格式编码,在请求和响应头中都有。它支持多种类型,如application/x-www-form-urlencoded、multipart/form-data、application/json等。 - 引用[2]:提到在axios请求中,不同的请求方式content-type也不同,并给出了一个例子。 用户的问题是针对下载文件Content-Type类型。下载文件通常发生在HTTP响应中,所以Content-Type是服务器在响应头中设置的。 如何确定下载文件Content-Type: 1. **检查HTTP响应头**:当浏览器或客户端下载文件时,服务器会在响应头中包含Content-Type字段,指示文件的媒体类型。例如,对于PDF文件,可能是application/pdf;对于图片,可能是image/jpeg。 2. **使用工具**: - 在浏览器中,可以使用开发者工具(如Chrome DevTools)查看网络请求的响应头。 - 使用命令行工具如curl,可以发送请求并查看响应头。 - 编程方式:在代码中,如使用JavaScript的Fetch API或XMLHttpRequest,可以访问响应头。 3. **文件扩展名映射**:在某些情况下,Content-Type可能基于文件扩展名,但这不是可靠的,因为服务器可以覆盖它。标准映射在MIME类型数据库中定义。 从引用[1],Content-Type用于说明传输的文件格式,所以对于下载文件,服务器设置它来告诉客户端如何处理文件。 用户提到“下载文件”,所以焦点在响应头的Content-Type。 回答结构: - 先解释什么是Content-Type- 然后说明如何确定它。 - 提供具体方法。 - 最后生成相关问题。 生成相关问题:基于主题,生成2-3个相关问题。 确保回答真实可靠:基于HTTP协议知识。 最终回答: 1. 介绍Content-Type。 2. 方法:查看响应头。 3. 示例:使用工具或代码。 4. 相关问题。</think>### 确定下载文件Content-Type 类型 Content-Type 是 HTTP 响应头中的一个关键字段,用于指示服务器返回文件的媒体类型(MIME 类型),帮助客户端(如浏览器)正确解析和处理下载的文件。例如,PDF 文件Content-Type 通常是 `application/pdf`,而 JPEG 图片的 Content-Type 是 `image/jpeg`。Content-Type 确保了文件能被正确识别和打开,避免出现乱码或格式错误[^1]。 要确定下载文件Content-Type 类型,您可以按照以下步骤操作: #### 1. **检查 HTTP 响应头(推荐方法)** - **原理**:当服务器发送文件时,它会在 HTTP 响应头中包含 Content-Type 字段。您可以通过工具或编程方式直接查看这个头信息。 - **操作方法**: - **在浏览器中**: - 打开浏览器的开发者工具(如 Chrome 的 DevTools,快捷键 F12)。 - 切换到 "Network"(网络)选项卡。 - 下载文件(例如点击一个下载链接),然后在网络请求列表中找到该文件请求。 - 点击请求,查看 "Headers" 部分下的 "Response Headers"。Content-Type 会显示类似 `Content-Type: application/pdf`。 - **使用命令行工具**: - 在终端中,使用 `curl` 命令发送 HEAD 请求(只获取头信息,不下载文件体): ```bash curl -I <文件URL> ``` 例如:`curl -I https://example.com/file.pdf`,输出中会包含 `Content-Type: application/pdf`。 - **使用在线工具**: - 访问 HTTP 头检查网站(如 [Redirect Checker](https://redirectcheck.com)),输入文件 URL,即可查看完整的响应头,包括 Content-Type。 #### 2. **编程方式获取(适用于开发场景)** - 在代码中,您可以通过 HTTP 客户端库访问响应头。以下是一个 JavaScript 示例(使用 Fetch API): ```javascript fetch('<文件URL>') .then(response => { const contentType = response.headers.get('Content-Type'); console.log('Content-Type:', contentType); // 输出如 "application/pdf" }) .catch(error => console.error('Error:', error)); ``` - **注意**:在 axios 等库中,不同请求方式(如 GET 或 POST)可能影响 Content-Type 的设置,但下载文件通常使用 GET 请求,Content-Type 由服务器决定[^2]。 - **其他语言**: - Python(使用 requests 库): ```python import requests response = requests.head('<文件URL>') # HEAD 请求只获取头信息 print('Content-Type:', response.headers['Content-Type']) ``` #### 3. **基于文件扩展名推测(不推荐,仅作参考)** - 文件扩展名(如 `.pdf` 或 `.jpg`)可能与标准 MIME 类型关联,但这不是可靠的,因为服务器可以覆盖默认设置。常见映射包括: - `.pdf` → `application/pdf` - `.jpg` 或 `.jpeg` → `image/jpeg` - `.png` → `image/png` - `.txt` → `text/plain` - `.zip` → `application/zip` - 参考官方 IANA MIME 类型列表: [IANA Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml)。 #### 注意事项 - **服务器依赖**:Content-Type 由服务器设置,如果服务器配置错误(如返回 `application/octet-stream` 作为通用类型),可能导致文件无法正确打开。此时,您需要联系服务器管理员。 - **安全性**:恶意文件可能伪造 Content-Type,因此下载文件时建议使用杀毒软件扫描[^1]。 - **性能**:HEAD 请求(如 `curl -I`)比下载整个文件更高效,因为它只获取头信息。 通过以上方法,您可以准确获取下载文件Content-Type 类型。如果您有具体文件 URL 或代码环境,我可以提供更针对性的帮助!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值