强制下载媒体

时间:2013-05-28 04:54:13

标签: android asp.net download

我从互联网上搜索并创建此代码以强制下载媒体文件。

            Stream stream = mi.GetMediaStream();
            long fileSize = stream.Length;
            byte[] buffer = new byte[(int)fileSize];
            stream.Read(buffer, 0, (int)stream.Length);
            stream.Close();
            Response.Clear();
            Response.ContentType = String.Format(mi.MimeType);
            Response.AddHeader("content-disposition", "attachment; filename=" + mi.Name + "." + mi.Extension);
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.BinaryWrite(buffer);
            Response.End();

它在台式机和Apple设备上运行良好。但是在Android设备中,它下载并说它不成功。

似乎是什么问题以及如何修改它?

1 个答案:

答案 0 :(得分:0)

这可能与此处描述的问题有关: http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

也许把文件名放在引号中?

Response.AddHeader("Content-Disposition", "attachment; filename=\"" + mi.Name + "." + mi.Extension + "\"");

否则,如果您从安全目录/站点提供文件,则可能是此错误: https://code.google.com/p/android/issues/detail?id=1353

...在这种情况下,您唯一能做的就是解决问题,并告诉您的用户在Android上使用其他浏览器(不是默认浏览器,而不是Chrome,因为他们都有问题,因此写入)。

祝你好运!