【问题标题】:Returning a stream directly to the web browser将流直接返回到 Web 浏览器
【发布时间】:2009-08-14 10:10:56
【问题描述】:

我正在服务器上生成一个文件,我不想将它写入磁盘,而是通过 Web 服务将它返回给客户端。你有什么建议这样做?

【问题讨论】:

  • 您是指类似 SOAP 的 Web 服务调用还是只是一个 URL?

标签: c# javascript web-services file-io pagemethods


【解决方案1】:
Response.OutputStream.Write(...)

或者,如果您有 MemoryStream:

MemoryStream ms = ...;
ms.WriteTo(Response.OutputStream);

编辑:

如果它是一个 SOAP Web 服务,那么只需从您的 asmx.cs 文件中的 Web 服务方法返回一个字节数组

【讨论】:

  • 你知道我会用客户端javascript上的byte[]做什么吗?
  • 想要用它做什么?文件里有什么?
  • 是的,你会如何处理 JavaScript 接收到的文件?如果那是你的包,你就不能(可靠地)以这种方式嵌入图像。如果是图片,还有更好的选择。
  • 什么PDF阅读器?如果它是一些 Flash 的东西,我怀疑你会将它指向一个 URL,而不是手动加载文件。如果它又是一个 iframe,你应该只加载一个 URL!在这种情况下,您可以使用我的答案的第一部分。
  • 您不能为此目的使用页面方法。您只需要一个处理程序(.ashx 文件)。这将有一个带有参数的 URL:s/p.ashx?file=x.pdf。用户或页面只会浏览到该 URL,然后它会返回设置为在浏览器中打开的 x.pdf 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
相关资源
最近更新 更多