我有一个Web应用程序,用户需要上传.zip文件.在服务器端,我正在检查上传文件的mime类型,以确保它是application/x-zip-compressed或application/zip.
在Firefox和IE上,这对我来说很好.然而,当一个同事测试它时,它在Firefox上失败了(发送mime类型就像是" application/octet-stream")但是在Internet Explorer上工作.我们的设置似乎是相同的:IE8,FF 3.5.1禁用所有附加组件,Win XP SP3,WinRAR安装为本机.zip文件处理程序(不确定是否相关).
所以我的问题是:浏览器如何确定要发送的mime类型?
请注意:我知道mime类型是由浏览器发送的,因此不可靠.我只是检查它是为了方便 - 主要是为了给出一个比你通过尝试打开非zip文件作为zip文件获得的更友好的错误消息,并避免加载(可能是沉重的)zip文件库.
我正在尝试在浏览器中呈现XML + XSL 2.0,返回.xml包含application/xml内容类型和.xsl页面的页面text/xml.Safari正在抱怨主要文档:"资源被解释为文档,但是使用MIME类型application/xml进行传输." (但保持渲染一切都很好).
我想摆脱这个警告信息.XML文档应使用哪些内容类型?
我有一个XML文件,使用XSL文件设置样式.在Firefox中打开XML文件时,我没有遇到任何问题(虽然奇怪的是,有时它只会在我点击"重新加载"后显示),但在Chrome/Chromium中我收到错误消息:
Resource interpreted as Stylesheet but transferred with MIME type application/xml
Run Code Online (Sandbox Code Playgroud)
文件在这里:http://jonreeve.com/test/mike/biblexml.xml
我不认为XML/XSL语法有任何不规则之处,所有链接似乎都措辞正确.
此外,这似乎与这里所有类似的问题类似,这些问题似乎与javascript和其他应用程序有关.这个只是纯XML/XSL.
我是XSL的新手,并且正在从头开始解决问题。
我有一个包含以下结构的源XML文件:
<root>
<Header>
</Header>
<DetailRecord>
<CustomerNumber>1</CustomerNumber>
<DetailSubRecord>
<Address>London</Address>
</DetailSubRecord>
<DetailSubRecord>
<Address>Hull</Address>
</DetailSubRecord>
</DetailRecord>
<DetailRecord>
<CustomerNumber>2</CustomerNumber>
<DetailSubRecord>
<Address>Birmingham</Address>
</DetailSubRecord>
<DetailSubRecord>
<Address>Manchester</Address>
</DetailSubRecord>
</DetailRecord>
<Footer>
</Footer>
</root>
Run Code Online (Sandbox Code Playgroud)
其中有<DetailRecord>多个<DetailSubRecord>s ,其中有多个s。
我已经设法将一个XSL放到一个平面文件中,该XSL将一个嵌套的多个DetailRecords集输出到一个平面文件中,但是我一直不知道如何在XSL中引用地址记录的第二个嵌套级别。
到目前为止,这是我的XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="text"/>
<xsl:variable name="spaces" select="' '"/>
<xsl:variable name="newline">
<xsl:text> </xsl:text>
</xsl:variable>
<xsl:template match="/">
<xsl:value-of select="root/Header/HeaderField"/>
<xsl:copy-of select="$newline"/>
<xsl:for-each select="root/DetailRecord">
<xsl:value-of select="CustomerNumber"/>
<xsl:copy-of select="$newline"/>
</xsl:for-each>
Trailer - recordCount - <xsl:value-of select="count(root/DetailRecord)"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)