response.setContentType作用

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的对应数据

SpringMVC produces与setContentType

【SpringMVC produces&headers&consumes】

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
.pdf 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()的作用及参数】

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐