0

我想我会重新发布这个,因为我有更详细的信息:

问题:Android Chrome 浏览器在所有情况下都会将文件重命名为“下载”。在某些情况下,它会将类型重命名为“.bin”(例如,如果扩展名为 .MOV)。正如我之前提到的,同一 Android 设备上的 Firefox 和 Dolphin 浏览器应用程序不会出现这种行为。文件已正确下载。作为旁注,我已经尝试在 Anchor 元素中指定“下载”属性,但没有成功。在这种情况下,即使是 Android Chrome 浏览器也会忽略“下载”属性。我的直觉是,由于我们流式传输文件的方式,“下载”属性被忽略了。另外需要注意的是,桌面版 Chrome 浏览器下载文件时没有问题(没有重命名)。我认为有'

背景信息:Web 服务器是 Windows Azure 云上的 IIS 7.5。使用的 Web 应用程序是 Microsoft 用于路由的 MVC 框架。So when a file is selected to download from the Chrome browser within an Android device, a download method on the server is accessed using MS MVC routing. 在此方法中,我们使用 httpResponse 指定标题信息和流式传输文件的碎片。这适用于 Android 设备上的任何其他浏览器应用程序(例如 Firefox 和 Dolphin),并且能够使用正确的文件名和类型进行保存。但是,对于 Chrome,文件和类型(有时)会被重命名。

以下是我下载 .MOV 文件时的响应标头:

* HTTP/1.1 200 OK Cache-Control: private, s-maxage=0 Content-Length: 54295903 Content-Type: application/octet-stream 服务器: Microsoft-IIS/7.5 X-AspNetMvc-Version: 4.0 Content-Disposition: 附件; 文件名=UTF-8''MyVideo.MOV X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Sat, 29 Jun 2013 05:01:32 GMT**

帮助!:我将不胜感激有关解决方法的任何建议。另外,我希望在谷歌开发社区工作的人能明确地说这是否会在下一次更新中得到修复。谢谢!!

4

3 回答 3

3

Content-Disposition有在 Android 上出现问题的历史。当然欢迎您尝试删除该UTF-8部分,看看这是否有助于 Chrome。但绝对要测试原始的 Android 浏览器应用程序,因为从数字上看,这是最流行的 Android 浏览器。

也可以看看:

于 2013-06-29T11:27:32.480 回答
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/

所以,一定要检查一下。

于 2013-10-17T14:21:36.253 回答
0

这是我们在空中和 SO上现场回答的上一个问题的副本https://stackoverflow.com/questions/17266320/chrome-browser-in-android-always-renames-downloaded-file-to-download-bin其中已被删除。

这将在下一次刷新中修复,尤其是通过 a[download] 属性。

于 2013-07-01T15:36:39.417 回答