我想我会转发这个,因为我有更详细的信息:
问题:在所有情况下,Android Chrome浏览器都会将文件重命名为“下载”。在某些情况下,它会将类型重命名为“.bin”(例如,如果扩展名为.MOV)。正如我之前提到的,同一Android设备上的Firefox和Dolphin浏览器应用程序不会出现这种行为。文件正确下载。作为旁注,我已经尝试在Anchor元素中指定“下载”属性而没有运气。在这种情况下,即使Android Chrome浏览器也会忽略“下载”属性。我的预感是因为我们流式传输文件的方式是忽略“下载”属性。需要注意的另一件事是Chrome浏览器的桌面版本下载文件没有问题(没有重命名)。我认为Chrome浏览器内置了一些安全功能,导致这些重命名问题。
背景信息:Web服务器是Windows Azure云上的IIS 7.5。正在使用的Web应用程序是Microsoft的用于路由的MVC框架。因此,当选择从Android设备中的Chrome浏览器下载文件时,使用MS MVC路由访问服务器上的下载方法。在这种方法中,我们使用httpResponse指定标题信息和流媒体切片。这适用于Android设备上的任何其他浏览器应用程序(例如Firefox和Dolphin),并且能够使用正确的文件名和类型进行保存。但是,使用Chrome时,文件和类型(有时)会重命名。
以下是我下载.MOV文件时的响应标题:
* HTTP / 1.1 200 OK Cache-Control:private,s-maxage = 0 内容长度:54295903 Content-Type:application / octet-stream 服务器:Microsoft-IIS / 7.5 X-AspNetMvc-Version:4.0 内容 - 处理:附件;文件名 = UTF-8''MyVideo.MOV X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET Date:Sat,29 Jun 2013 05:01:32 GMT **
帮助!:我很感激任何关于解决方案的建议。此外,我还要感谢在谷歌开发社区工作的人,在下次刷新时是否会修复此问题。谢谢!
答案 0 :(得分:3)
Content-Disposition
有关于Android的问题的历史。我们当然欢迎您尝试删除UTF-8
部分,看看是否有助于Chrome。但绝对测试原始的Android浏览器应用程序,数字上是最受欢迎的Android浏览器。
另见:
答案 1 :(得分:2)
我在Chrome / Android上有类似的下载问题。 .docx文件被重命名为filename.bin(或类似的东西)。
包括标题
Content-Type:application/octet-stream
和
Content-Disposition:attachment; filename="something.docx";
原来我的问题是在“Content-Disposition”标题中以分号结尾。当行末没有分号时 - 它工作正常:
Content-Disposition:attachment; filename="something.docx"
此处有更多信息:http://www.digiblog.de/2011/04/android-and-the-download-file-headers/
所以,一定要检查一下。
答案 2 :(得分:0)
这是我们回答live on air的上一个问题的副本,以及此处https://stackoverflow.com/questions/17266320/chrome-browser-in-android-always-renames-downloaded-file-to-download-bin已删除的问题。
这将在下次刷新时修复,尤其是通过[下载]属性。