【问题标题】:open docx in asp.net在 asp.net 中打开 docx
【发布时间】:2011-04-25 18:50:29
【问题描述】:

我需要在浏览器中打开 docx 文件。尝试使用下面的代码。但是会发生文件损坏的错误。内容类型是否正确,也尝试使用内容类型 application/msword。

Response.AddHeader("content-disposition", "inline;filename=" + DisplayFileName); Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";//getContentType(filename); Response.WriteFile(fullpath); 响应。结束(); Response.Flush();

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

【问题讨论】:

    标签: c# .net asp.net


    【解决方案1】:

    你遇到了什么错误?

    你可以试试这个 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();
    

    【讨论】:

    • 尝试使用 'application/vnd.ms-xpsdocument'。存在同样的问题。 Word 2007 打开,但它说文件已损坏。 MIME 类型也已添加到 IIS MIME 类型中。
    • 文件中有图片吗?
    • 我尝试了一个没有图像的文档,只有格式化的文本。要求是支持所有类型的word文件。
    • 试过上面的代码。只有 Word 打开,文件不打开。也没有错误。我错过了什么,任何 IIS 设置?
    • 文件存在吗?文件名和路径是否正确?通过文件系统打开文件正常打开?
    【解决方案2】:

    您是否考虑过压缩?

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

    这只是一个想法,我并不是说是这样,但我在 iis 压缩和 zip 文件方面遇到了一些问题,所以它可能与 docx 有关。

    ps : 你试过 xslx 或 pptx 吗?

    【讨论】:

    • 我们的生产服务器确实存在问题,其中 docx 文件显示为压缩文件
    • 尝试为 docx 禁用 IIS 压缩,看看是否能解决问题。
    猜你喜欢
    • 2012-07-23
    • 2014-10-14
    • 2013-05-09
    • 1970-01-01
    • 2023-03-28
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多