【问题标题】:Asp.net Download file on mobile platformAsp.net 移动平台下载文件
【发布时间】:2010-07-05 08:12:57
【问题描述】:

我有一些文件存储在 SQL 数据库中。当用户访问具有给定 ID 的 url 时,BLOB 数据会通过以下方式从数据库中检索到网络浏览器:

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 无法处理所有文件吗?还是我在响应中做错了什么。

【问题讨论】:

    标签: asp.net iphone android download response


    【解决方案1】:

    application/octent-stream 的内容类型不适用于 .txt 和 .doc 文件。对于 .txt 你想要使用“text/plain”和 .doc 文件你想要“application/msword” 我建议你将 Content-Type 值存储在你的数据库中。这是一个很好的reference for mime types。如果您通过 FileUpload 控件接受文件,则 PostedFile 对象应该告诉您内容类型。

    编辑 1:另外,您不需要设置内容长度,因为 ASP.Net 会为您执行此操作。

    【讨论】:

    • 非常感谢 matt-dot-net!从你的回复中学到了很多。我稍后会实施这个,我会告诉你它是否有效(将标记为答案)!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多