pdf的contenttype的简单介绍

http://www.itjxue.com  2023-01-06 03:37  来源:未知  点击次数: 

常见的Content-Type字段的值

text/plain

text/html

text/css

image/jpeg

image/png

image/svg+xml

audio/mp4

video/mp4

application/javascript

application/pdf

application/zip

application/atom+xml

这些数据类型总称为? MIME type ?,每个值包括一级类型和二级类型,之间用斜杠分隔。

MIME type还可以在尾部使用分号,添加参数,如 Content-Type:text/html; charset=utf-8。

除了预定义的类型,厂商也可以自定义类型,如 application/vnd.debian.binary-package。

浏览器打开pdf文件

这是Servlet里的发送response的代码吧。

看起来是ContentType设置上有问题。解决方法如下,可以做一条就试一下是否解决这个问题了,直至完成。

1) 作条件判断,如果是pdf文件的话,setContentType改为

response.setContentType("application/pdf");

2) 如果是IE,确认Acrobat Reader的浏览器Add-on已经安装。如果是其他非IE核心的浏览器,确认MIME application/pdf已经映射到本地打开方式或插件打开方式。

3) 如果感兴趣的话,你可以试试其他浏览器下的效果。

文档的内容类型(ContentType)

文/桂浮云,2020年2月12日

参考文献: ECMA 376(第五版)

Office Open XML格式的.docx文档,可以理解为一个Zip压缩包。最小的文档压缩包之中,应当至少包含3部分内容:1.ContentType定义;2.关系定义;3.主文档内容定义。

既然文档是一个压缩包(Package),我们就应该知道其中必然包含了若干被压缩的文件,这些被压缩的文件可以称之为为文档包的片段(part)。

在这些片段(或者说被压缩的文件之中),有一个定义包中其他文件内容类型(ContentType)的文件很关键,物理上,它是存储于文档压缩包(Package)内根目录的[Content_Types].xml的片段文件。

既然扩展名是.xml,所以,它是以XML语言编写的,需要通过相关的Xml库进行读写。从文件内容来看,它以Types为根节点,主要包含Default和Override两种子节点。

用于定义默认内容类型,定义了与文件扩展名对应的内容类型。XML格式为Default Extension="扩展名" ContentType="内容类型" /。注意,这里的扩展名不带英文小数点(.)。

用于定义与具体片段文件对应的内容类型。XML格式为:Override PartName="片段文件物理存储路径" ContentType="内容类型" /。

[Content_Types].xml片段文件内容,必须至少指定 两类ContentType 。 其一,用于指定存储主文档内容的片段文件 , 其二,用于指定各种包与片段、片段与片段的关系 。

此种ContentType作用比较容易理解,主要是为了通过指定的ContentType,方便查找存储实际文档内容的片段文件。通过ECMA376的示例与实际情况对比来看,有ContentType相同,主文档片段文件物理存储位置不同的情况。

主文档片段的ContentType通常为 application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml,没有发现不同;但在包(Package)中的物理存储路径有位置不同的情况,有的放在了包(Package)的根目录,有的放在了word目录之下。所以建议由ContentType确定主文档片段文件的存放位置。

此种ContentType,通过Override节点获取对应的信息,形式大致如下:

Override PartName =" word/document.xml " ContentType =" application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml " /

再次提醒, 主文档片段文件的PartName可能存在变化,ContentType相同 。或参考ECMA-376的相关说明。

无论是哪种关系,这种关系同样以包(Package)内片段(part)文件的形式存在,关系文件的扩展名通常为rels。其中,包与片段之间的关系,我们可以称之为 包级关系 ,对于整个docx文件而言,是必须的;片段与片段之间的关系,称之为 片段级关系 ,根据实际需要确定,所以,不一定存在。

根据上面的描述,我们可以猜想到,在实际的文档打包中,并关系文件不唯一。因此,关系文件的ContentType通常由Default子节点定义,或者更应该说,关系文件的扩展名通常由特定的ContentType指定。形式大致如下:

Default Extension =" rels " ContentType =" application/vnd.openxmlformats-package.relationships+xml " /

不过,包级关系文件的位置是固定的,为/_rels/.rels,实际是以Relations为根节点的XML文件。包级关系文件必须隐含指定包与存储主文档片段文件的 关系 ,以及视需要而存在的与原始数字签名、文件属性片段文件、缩略图等之间的 关系 。

(续见: 文档的关系定义

什么是content-type类型

Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。Content-Type 标头告诉客户端实际返回的内容的内容类型。

Content-Type是Http的实体首部字段,用于说明请求或返回的消息主体是用何种方式编码,在request header和response header里都存在。

常用类型:

一、application/x-www-form-urlencoded

1、浏览器的原生form表单。

2、提交的数据按照 key1=val1key2=val2 的方式进行编码,key和val都进行了URL转码。

二、multipart/form-data

常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 form 的 enctype 等于这个值。

首先生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。然后 Content-Type 里指明了数据是以 multipart/form-data 来编码,本次请求的 boundary 是什么内容。

消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary 开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容(文本或二进制)。如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 --boundary-- 标示结束。

三、application/json

消息主体是序列化后的 JSON 字符串,这个类型越来越多地被大家所使用。

四、text/xml

是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。

http请求头content-type类型常见值

通常HTML网页中这样写:meta content-type="text/html;charset=utf8"

可以看到我们经常用到请求头的媒体类型是text/html。

另外,常见媒体类型:

1、text/html: HTML格式。(返回HTML文本)

2、text/plain :纯文本格式。(返回的是纯文本) ? ? ?

3、text/xml :XML格式。(返回XML文本)

4、image/gif :gif图片格式。 (返回图片) ??

5、image/jpeg :jpg图片格式。?(返回图片)

6、image/png:png图片格式。(返回图片)

以application开头的媒体类型:

7、application/x-www-form-urlencoded : form encType=""中默认的提交数据的方式,如果省略的话就是这种方式。表单的数据会被编码为key/value格式发送到服务器

8、multipart/form-data : 在表单中上传文件时,设置这种类型。(在表单中经常使用,它不是application开头的)。

9、application/xml:返回xml数据格式

10、application/json:返回json数据格式。

11、application/pdf: 返回pdf格式。

(责任编辑:IT教学网)

更多

推荐Fireworks教程文章