【问题标题】:How do I send a binary blob to a client browser?如何将二进制 blob 发送到客户端浏览器?
【发布时间】:2010-09-30 09:15:25
【问题描述】:

请原谅这里愚蠢的新手问题;网络编程不是我的强项……(脸红)

我有一个在 Web 服务器上运行的 aspx 页面。我有一个包含任何类型的二进制文件的 blob(字节数组)以及一个文件名。

我想将此文件通过浏览器下载到客户端,并使用该文件类型的默认应用程序打开。我真的不想将 blob 作为文件保存在服务器上;这会留下我不想去想的可怕的家务混乱。

我确实尝试过用谷歌搜索这个问题,但我想我使用了错误的关键字。

这确实应该是显而易见的,但我没有快乐。

有什么诀窍?

谢谢!

【问题讨论】:

    标签: asp.net browser download blob


    【解决方案1】:
    Response.BinaryWrite(byteArray);
    

    您还应该设置内容类型

    Response.ContentType = "application/pdf";
    

    但这将取决于您的文件类型。

    文件名(以及所有内容)都是这样完成的

    Response.AddHeader("content-disposition", 
       String.Format("attachment;filename={0}", fileName));    
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(byteArray);
    

    【讨论】:

    • 我要补充一点,某些浏览器(coughIE*cough)通常会忽略文件名。
    • 哦,是的,我以前也遇到过。有时也有效的一个技巧是将文件名添加到查询字符串的末尾。
    • 感谢 Bob 的快速、简洁和准确的回复!
    【解决方案2】:

    首先,您必须知道 mime 类型。一旦知道这一点,就可以设置 Response.ContentType 属性。之后,只需使用 Response.BinaryWrite()。如果不先设置 ContentType 属性,客户端几乎没有机会正确打开文件。

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 2017-02-16
      • 2020-08-16
      相关资源
      最近更新 更多