Java基础——response.setContentType(...)与response.addHeader(...)

来源:互联网 发布:揭阳淘宝村在哪里 编辑:程序博客网 时间:2024/06/06 02:44

在Java开发下载功能时,我们都会看到以下这两句代码或类似这两句代码的代码:

response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition", "attachment; filename=" + new String(filename.getBytes("GBK"), "ISO8859-1"));

以下就这两句代码作用做简要阐述:

response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据;

Content-Type:它定义了数据的类型,以便数据能被适当的处理。有效的类型有:text,image,audio,video,applications,multipart和message。注意任何一个二进制附件都应该被叫做application/octet- stream。

response.addHeader(),"Content-Disposition":MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名,就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment;filename 必须保留扩展名部分(xxx.doc), 文件名中的中文才能正确解码, 否则可能不识别%20(空格), 甚至在ie6下全部都是未解码的格式(%xx)。new String(filename.getBytes("GBK"), "ISO8859-1"))new String(filename.getBytes("UTF-8"), "ISO8859-1")),避免下载的文件名乱码。

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。详见百度MIME!

原创粉丝点击