您的位置:首页 > 编程语言 > Java开发

Content-disposition中Attachment和inline的区别、ContentType设置

2016-09-19 17:23 363 查看

Content-disposition中Attachment和inline的区别

Content-dispositionAttachment和inline的区别内嵌显示spring
download内联显示 

java web中下载文件时,我们一般设置Content-Disposition告诉浏览器下载文件的名称,是否在浏览器中内嵌显示.

Content-disposition:
inline; filename=foobar.pdf

表示浏览器内嵌显示一个文件

 

Content-disposition:
attachment; filename=foobar.pdf

表示会下载文件,如火狐浏览器中



 

spring mvc中

Java代码  


@ResponseBody  
    @RequestMapping(value = "/download",produces="application/octet-stream")  
    public byte[] downloadFile(HttpServletRequest request, HttpServletResponse response,String contentType2)  
            throws IOException {  
        byte[]bytes=FileUtils.getBytes4File("D:\\Temp\\cc.jpg");  
        response.addHeader("Content-Disposition", "inline;filename=\"a.jpg\"");  
        return bytes;  
    }  

 如上代码中是内嵌显示图片呢?还是会弹框下载呢?

答案是:弹框下载

为什么呢?设置为inline应该是内嵌显示啊!

因为response content type设置成了"application/octet-stream"

注意:我们说是内嵌显示还是下载,那一定是针对可内嵌显示的类型,例如"image/jpeg","image/png"等.

 

看下面的例子:设置response content type为"image/jpeg"

Java代码  


@ResponseBody  
    @RequestMapping(value = "/download",produces="image/jpeg")  
    public byte[] downloadFile(HttpServletRequest request, HttpServletResponse response,String contentType2,String downloadType)  
            throws IOException {  
        byte[]bytes=FileUtils.getBytes4File("D:\\Temp\\cc.jpg");  
        response.addHeader("Content-Disposition", downloadType+";filename=\"a.jpg\"");  
        return bytes;  
  
    }  

 在浏览器中访问:http://localhost:8080/tv_mobile/video/download?downloadType=inline 时就内嵌显示:



参考:http://hw1287789687.iteye.com/blog/2188480

response.setContentType 可以设置的值

Sets the Content-Type header. Content-Type identifies the MIME type of the response document and the character set encoding.

To set the Content-Type header, use the following code:

response.setContentType("text/html; charset=gbk");

The default MIME type is text/plain. Some common MIME types include:

------------------------------------------------------------------

HTML format (.htm or .html): text/html

Adobe Portable Document (pdf): application/pdf

Microsoft Word (.doc): application/msword

Microsoft Excel (.xls): application/msexcel

Microsoft Powerpoint (.ppt): application/ms-powerpoint

Realaudio (.rm, .ram): audio/x-pn-realaudio

Text format (.txt): text/txt

Zipped files (.zip): application/zip

response.setContentType( "application/msword" );

response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-type","application/pdf");

MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。另外还有使用权限问题。比如对PDF文档,用“application/pdf “策略。这在动态网页中很常见。出现这种现象,有两种情形:一是使用一个应用程序去打开它不能打开的文档,比如用在标签中定义“DWG”文档用“application/pdf ”,就会出现无法打开的问题。二是文件扩展名符合要求,但文件内容(格式)不符合要求。你可以检查你浏览的网页源代码,获得出错信息。检查方法是:查看—源文件。寻找类似于“application/pdf “的字符串,就可以看到,要打开的文件是否与应用程序匹配。

附加: Response.setContentType()详细参数 --留着以后用得着

response.setContentType()的参数说明

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

response.setContentType() ;

* = 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

cb59
.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 :客户端浏览器按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 :客户端浏览器按CSS格式进行解析文档

.cut = application/x-cut

.dbf = application/x-dbf

.dbm = application/x-dbm

.dbx = application/x-dbx

.dcd = text/xml :客户端浏览器按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 :客户端浏览器按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 :客户端浏览器按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 :客户端浏览器按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格式进行解析文档

.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 :客户端浏览器按 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息