我从互联网上搜索并创建此代码以强制下载媒体文件。
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设备中,它下载并说它不成功。
似乎是什么问题以及如何修改它?
答案 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,因为他们都有问题,因此写入)。
祝你好运!