Asp.net 如何将二进制blob发送到客户端浏览器?

Asp.net 如何将二进制blob发送到客户端浏览器?,asp.net,browser,download,blob,Asp.net,Browser,Download,Blob,请原谅这里的愚蠢的新手问题;网络编程不是我的专长。。。(脸红) 我有一个在web服务器上运行的aspx页面。我有一个blob(字节数组),包含任何类型的二进制文件,外加一个文件名 我想通过浏览器将此文件推送到客户端,并使用此文件类型的默认应用程序打开。我真的不想将blob保存为服务器上的文件;这将留下一个可怕的家务混乱,我只是不想去想 我确实试过用谷歌搜索这个问题,但我猜我用错了关键词 这真的应该是显而易见的怎么做,但我没有乐趣 诀窍是什么 谢谢 Response.BinaryWrite(byt

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

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

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

我确实试过用谷歌搜索这个问题,但我猜我用错了关键词

这真的应该是显而易见的怎么做,但我没有乐趣

诀窍是什么

谢谢

Response.BinaryWrite(byteArray);
您还应该设置内容类型

Response.ContentType = "application/pdf";
但这将取决于您的文件类型

文件名(以及所有内容)是这样做的

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

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

我要补充的是,某些浏览器(cougie*cough)经常忽略文件名。哦,是的,我以前也遇到过这种情况。有时也可以使用的一个技巧是将文件名添加到查询字符串的末尾。感谢Bob快速、简洁和准确的回答!