response.setContentType(MIME)的作用是使客户端浏览器区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。
例如web浏览器就是通过MIME类型来判断文件是PNG图片。通过MIME类型来处理json字符串。
请看如下代码案例:
@GetMapping("getImage")
public void getPngImage(HttpServletResponse response) throws IOException {
// 利用 输入流从磁盘中读取一个jpg的图片
String imagePath = "E:\\壁纸\\8b82b9014a90f6030add233a3b12b31bb051ed5a.jpg";
FileInputStream in = new FileInputStream(imagePath);
// 设置响应给客户端的文件格式
response.setContentType("image/jpeg");
// 获取响应体的输出流
ServletOutputStream os = response.getOutputStream();
// 用 BufferedOutputStream(处理流/包装流)来包装上面那个输出流
BufferedOutputStream bos = new BufferedOutputStream(os);
byte[] buff = new byte[1024];
int len = 0;
// 输入流读入字节码内容
while ((len = in.read(buff, 0, 1024)) != -1) {
// 输出流写出字节码内容
bos.write(buff, 0, len);
}
// 关闭输出流
if (bos != null)
bos.close();
// 关闭输入流
if (in != null)
bos.close();
}
这是一个controller层的一个接口
该接口首先从本地磁盘读取一个jpg格式的图片,最后以流的形式返回给客户端
重点看这个代码:
// 设置响应给客户端的文件格式
response.setContentType("image/jpeg");
此时我设置的response响应格式为image/jpeg,咱们请求一下接口看看浏览器解析的数据
可以看出浏览器解析出来的就是一个图片,很正确
接下来我们修改response.setContentType 为 audio/mp3(音频)
// 设置响应给客户端的文件格式
response.setContentType("audio/mp3");
可以看出,此时浏览器是将文件以音频的格式解析的,但是该文件本身是一个图片,因此什么声音也没有
改成pdf格式
// 设置响应给客户端的文件格式
response.setContentType("application/pdf");
原理和上面那个一样,我就不解释了
相信根据上面的案例大家应该明白response.setContentType怎么玩的了,接下来我为大家总结一些 文件格式与content-type的对应数据
文件扩展名 | Content-Type(Mime-Type) |
---|---|
.*( 二进制流,不知道下载文件类型) | application/octet-stream |
.tif | image/tiff |
.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 | application/xml-dtd |
.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 |
.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 |
.nrf | application/x-nrf |
.nws | message/rfc822 |
.odc | text/x-ms-odc |
.out | application/x-out |
.p10 | application/pkcs10 |
.p12 | application/x-pkcs12 |
.pci | application/x-pci |
application/pdf | |
.pdx | application/vnd.adobe.pdx |
.png | image/png |
.png | application/x-png |
.pot | application/vnd.ms-powerpoint |
.ppt | application/vnd.ms-powerpoint |
.c4t | application/x-c4t |
.ppt | application/x-ppt |
.pr | application/x-pr |
.prf | application/pics-rules |
.ps | application/x-ps |
.ps | application/postscript |
.rat | application/rat-file |
.rdf | text/xml |
.rgb | application/x-rgb |
.rm | application/vnd.rn-realmedia |
.rmf | application/vnd.adobe.rmf |
.smil | application/smil |
.stl | application/vnd.ms-pki.stl |
.svg | text/xml |
.svg | image/svg+xml |
.tsd | text/xml |
.txt | text/plain |
.vss | application/vnd.visio |
.vst | application/vnd.visio |
.wav | audio/wav |
.wb1 | application/x-wb1 |
.ws | application/x-ws |
.wsdl | text/xml |
.xhtml | text/html |
.xls | application/vnd.ms-excel |
.xls | application/x-xls |
.xlw | application/x-xlw |
.xsl | text/xml |
.ipa | application/vnd.iphone |
.apk | application/vnd.android.package-archive |
.xap | application/x-silverlight-app |
.z | application/x-compress |
.zabw | application/x-abiword |
.zip | application/zip |
.zoo | application/x-zoo |
【 人工智能 content-type对照表 】
【一文彻底读懂response.setContentType()的作用及参数】
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_45464560/article/details/121062522
内容来源于网络,如有侵权,请联系作者删除!