【问题标题】:C# file export issueC# 文件导出问题
【发布时间】:2013-03-20 04:07:37
【问题描述】:

我使用此代码导出/打开文件 (pdf/xls/doc)。

Response.Clear();
Response.Buffer = true;

Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Charset = "UTF-8";
Response.ContentType = mimeType;

Response.AppendHeader("content-disposition", "inline; filename=" + fileName + "." + extension);

Response.BinaryWrite(bytes);
Response.End();

当我用 Word 打开一个 doc 文件并单击导出到 xls 或 pdf 时,在我关闭 Word 之前什么都没有发生。 关闭 Word 后,我已经可以打开 xls 和 pdf 了。

当我用 Excel 打开 xls 时会出现这个问题。

是什么原因?

【问题讨论】:

  • 你不能在 Stream 上设置 FileOpen 模式吗?你能展示一下你是如何声明流的吗?还可以查看此帖子作为示例,并尝试使用类似 FileAccess.ReadWrite, FileShare.None stackoverflow.com/questions/3889521/… 的内容

标签: c# asp.net httpwebresponse


【解决方案1】:

根据您使用的单词版本,我会说问题来自inlinecontent-disposition

在最新版本的 Word 中(见于 Word 2010),它尝试在inline 时以WEBDAV 模式打开文档,这可能会导致问题(在尝试导出/打印文档时出现锁定、丢失 cookie 或凭据) )

您可以查看您的网络流量,看看是否涉及此 WEBDAV 行为,并查看 content-disposition attachment 是否解决问题。

希望这会有所帮助

【讨论】:

    【解决方案2】:

    原因是因为 Word 和其他类似 Word 的程序会锁定打开的文件以避免再次双重打开。因此无法从您的应用程序再次打开锁定的文件。

    【讨论】:

    • 恕我直言,我认为这个问题属于 SO。
    • meta 上出现了关于这是否是编程问题的问题
    • @Rachel 好的,确实知道元数据,我删除了 cmets,并且 Ben 已经删除了所有已准备好的行(没有投票关闭或其他任何内容)。
    • @Aristos 没问题,我不认为我访问过元站点并真正开始了解运行站点背后的社区,直到我也有超过 20k 的代表 :)
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2019-08-10
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多