如果传递了流或没有扩展名的文件,如何识别 XPS 文件?我知道 XPS 文件是 zip 文件,因此我可以在开始时查找 ZIP 幻数,但是如何识别 XPS 文件?
从我所做的研究来看,我认为我需要提取并查看 [Content_Types].xml,但是一旦我在那里,我需要寻找的东西并不是(太)明显。
如果传递了流或没有扩展名的文件,如何识别 XPS 文件?我知道 XPS 文件是 zip 文件,因此我可以在开始时查找 ZIP 幻数,但是如何识别 XPS 文件?
从我所做的研究来看,我认为我需要提取并查看 [Content_Types].xml,但是一旦我在那里,我需要寻找的东西并不是(太)明显。
我认为在大多数情况下,您只需检查[Content_Types].xml
. 有人可能会向您传递一个 zip 文件,其中包含一个类似名称的文件,但不包含您希望它作为 XPS 文档的一部分包含的信息,但这种可能性有多大?文件名非常具体,对我来说,不太可能产生意外碰撞。
但如果您想更加确定,您可以检查 XML 文件是否符合预期的模式。您通常应该看到如下内容:
<?xml version="1.0" encoding="utf-8"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
<Default Extension="fdseq" ContentType="application/vnd.ms-package.xps-fixeddocumentsequence+xml"/>
<Default Extension="fdoc" ContentType="application/vnd.ms-package.xps-fixeddocument+xml"/>
<Default Extension="xml" ContentType="application/vnd.ms-printing.printticket+xml"/>
<Default Extension="JPG" ContentType="image/jpeg"/>
<Default Extension="fpage" ContentType="application/vnd.ms-package.xps-fixedpage+xml"/>
<Default Extension="dict" ContentType="application/vnd.ms-package.xps-resourcedictionary+xml"/>
</Types>
您还可以检查所需的FixedDocumentSequence.fdseq
文件。
希望有帮助/相关链接: