1

我从互联网上搜索并创建了这个代码来强制下载媒体文件。

            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 设备上运行良好。但在安卓设备中,它下载并说它不成功。

似乎是什么问题,我该如何修改它?

4

1 回答 1

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,因为在撰写本文时它们都有问题)。

祝你好运!

于 2013-07-23T10:23:58.003 回答