2010-10-15 78 views
1

我有要求在浏览器中打开docx文件。尝试下面的代码。但错误发生该文件已损坏。内容类型是否正确,还可以使用内容类型application/msword进行尝试。在asp.net中打开docx

Response.AddHeader(“content-disposition”,“inline; filename =”+ DisplayFileName); Response.ContentType =“application/vnd.openxmlformats-officedocument.wordprocessingml.document”; // getContentType(filename); Response.WriteFile(fullpath); Response.End(); Response.Flush();

当给出适当的内容类型时,该代码适用于所有其他文件类型。问题只在于docx。

回答

3

你得到了什么错误?

你可以试试这个MIME类型的docx?

application/vnd.ms-xpsdocument 

编辑:我能得到它的工作是这样的:

Response.ClearContent(); 
Response.ClearHeaders(); 

Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; 

string fileName = "C:\\Your\\File\\Name.docx"; //change to your file name and path 

Response.WriteFile(fileName); 
Response.End(); 
+0

尝试使用'application/vnd.ms-xpsdocument'。存在同样的问题。 Word 2007打开,但它说该文件已损坏。 MIME类型也已添加到IIS MIME类型中。 – Sandhya 2010-10-15 09:21:37

+0

文件中有图像吗? – adrianos 2010-10-15 09:27:09

+0

我试了一个没有图像的文档,只有格式化文本。要求是支持所有类型的文件。 – Sandhya 2010-10-15 09:31:43

0

你看有关压缩?

Docx是zip文件,如果gzip压缩在服务器上处于活动状态,它不能混淆数据(可能是双重压缩,或者客户端尝试从docx中提取数据,假设它已被IIS压缩)

这只是一个想法,我不是说这是,但我有一些与iis压缩和zip文件的问题,所以也许它与docx有关。

ps:你有没有试过xslx或pptx?

+0

我们的生产服务器中存在docx文件显示为压缩文件的问题 – Sandhya 2010-10-15 09:53:15

+0

尝试禁用docx的IIS压缩并查看它是否可以解决问题。 – oleveau 2010-10-15 14:22:07