我们有一个应用程序,我们在ColdFusion服务器上生成.doc文件。该文件在MSWord中正确打开并正确显示。
在Internet Explorer中,它要求我下载或保存文件。保存时,文件在我的下载文件夹中保存为file.doc,这是正确的。
直接从Internet Explorer打开时,文件会正确显示。但是当我在MSWord中“保存为”时,默认文件类型是“网站”而不是“word文档”。
这是单词的内容。我知道有更好的解决方案,但那就是我们如何完成它。
<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'>
<head>
<title>file name goes here</title>
<!--[if gte mso 9]>
<xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:Zoom>90</w:Zoom>
<w:DoNotOptimizeForBrowser/>
</w:WordDocument>
</xml>
<![endif]-->
<style>/*style goes here*/</style>
</head>
<body>body goes here</body>
</html>
我曾尝试添加doctype,但没有发生任何事情。
在ColdFusion上,发生以下情况:
<cfcontent reset="true" type="application/vnd.ms-word" />
#wordContent#
<cfheader name="Content-Disposition" value="attachment; filename=file.doc" />
我还尝试过“application / msword”作为MIME-Type,但没有发生任何事情。
我曾尝试将其设为.docx,但之后它的格式错误似乎合乎逻辑,因为它不是xml而是html。
我希望,可能会有一些元信息,授予我访问默认文件名的权限,例如,
<o:Author>Author name goes here</o:Author>
<o:LastAuthor>Last authors name goes here</o:LastAuthor>
<o:Revision>1</o:Revision>
<o:Created>#dateFormat(now(),"yyyy-mm-dd")#T#timeFormat(now(),"HH:mm")#Z</o:Created>
<o:LastSaved>#dateFormat(now(),"yyyy-mm-dd")#T#timeFormat(now(),"HH:mm")#Z</o:LastSaved>
<o:Version>12.00</o:Version>
</o:DocumentProperties>
我也玩过这里给出的信息http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats
但他们似乎都没有工作。我在这里,寻求帮助。
编辑:添加了MSWord行为错误的截图(德语)
答案 0 :(得分:1)
老实说,我认为无法更改默认的“另存为类型”值。虽然您可以欺骗浏览器使用MS Word打开内容,但Word仍然足够聪明,可以识别当前内容是否为HTML。因此它相应地设置默认文件类型。
在任何情况下,您仍然可以手动选择.doc
文件类型。但只要您生成一个可能与它一样好的仿MS Word文件(即HTML)。