4

我已经开发了一个应用程序,但是当我的客户尝试从使用三星 GT19003 提供的 url 下载应用程序时,它正在以 .zip 文件的形式下载,点击它说无法打开文件错误。而它以 .apk 的形式下载并且在我们的设备上运行良好。请帮助我,我该如何解决这个问题。

4

5 回答 5

4

一个简单的解决方案是在 /etc/mime.types 中添加以下行

application/vnd.android.package-archive     apk

并重新启动你的 apache。

这将强制浏览器将文件下载为“apk”,而不是附加“zip”。

于 2020-01-05T04:36:23.207 回答
3

确保您已将 http 设置Content-Typeapplication/vnd.android.package-archive

这让 chrome 知道它是一个应用程序而不是一个 zip。

于 2019-11-30T08:19:19.483 回答
0

如果它被下载为 .zip

  1. 您或您的客户可以使用File Expert application压缩此 . zip文件,它必须在解压缩文件夹中显示 .apk 文件

  2. 为您的用户提供直接 apk 链接,他/她使用默认浏览器下载或使用其他类似 Opera 的链接,如果是 .apk 文件链接,则必须按原样下载。

  3. 您可能正在使用某些内容站点,该站点以特定的下载方法压缩文件,请确保它用于直接 .apk 链接。

编辑1:

  1. 最后但并非最不重要的一点是 .apk 只是一个 zip 文件,所以这不是问题,如果可以的话,只需重命名它(从 .Zip 到 .apk) ,我希望它能解决问题
于 2012-06-01T07:10:13.197 回答
0

在我的情况下,这个问题也与@alireza-fattahi 提到的关于标题的问题相同。

在这里分享这个是因为在我们的例子中,该文件位于Azure 存储中并由CDN访问,以防万一有人遇到同样的问题。

修复 Azure Sorage 和 CDN

默认情况下,上传的 APK blob 的内容类型为 ,application/zip并且与 reposnse 标头中反映的内容类型相同,导致下载的文件.zip在下载完成后在 Android OS 上获得扩展名。

我必须在存储 CDN 中设置自定义规则以覆盖content-type响应头application/vnd.android.package-archive

设置新规则后记得清除 CDN 缓存

阅读有关Azure CDN 规则引擎的更多信息。

在此处输入图像描述

于 2021-01-25T04:56:26.970 回答
0

这是示例://在此处设置您的下载apk路径

$path= public_path()。"/upload/apk/Ninja11.apk";

//Set header here like this
$headers =  [
            'Content-Type'=>'application/vnd.android.package-archive',
            'Content-Disposition'=> 'attachment; filename="ninja-release.apk"',
        ];

返回响应()->文件($path,$headers);

这是 Laravel 框架代码,但同样可以在其他框架中使用。只需设置内容类型

注意:这不是 Android 方面的问题

于 2021-07-29T11:36:46.520 回答