2010-07-05 46 views
2

我有一些文件存储在SQL数据库中。当用户访问一个网址给定ID,BLOB数据从数据库检索通过向webbrower:Asp.net下载移动设备上的文件

Byte[] myData = b.BlobContent; 

Response.Clear(); 
Response.ContentType = "application/octet-stream"; 
Response.AddHeader("content-disposition", "attachment; filename=" + fileName); 
Response.AddHeader("Content-Length", b.SizeInBytes.ToString()); 

Response.BinaryWrite(myData); 
Response.End(); 

然而,iPhone(Safari浏览器)无法下载* .txt和* .DOC文件。它说:“Safari不能下载这个文件”。 PDF可以(!)下载和查看。

在Android上,不能下载任何文件。

这是因为iPhone和Android无法处理所有文件?或者我在回应中做错了什么。

回答

1

应用程序/ octent-stream的内容类型不适合.txt和.doc文件。对于.txt你想要使用“text/plain”和.doc文件,你想要“application/msword”,我建议你在你的数据库中存储Content-Type的值。这是一个很好的reference for mime types。如果您通过FileUpload控件接受文件,则PostsFile对象应告诉您contentn类型。编辑1:另外,你不应该设置内容长度,因为ASP.Net会为你做这个。

+0

非常感谢你matt-dot-net!从你的回复中学到了很多东西。我将在稍后实施,我会告诉你它是否有效(将标记为答案)! – JonHendrix 2010-07-06 11:52:29