我已经开发了一个应用程序,但当我的客户端尝试从使用三星GT19003提供的URL下载应用程序时,它是作为.zip文件下载的,并点击它说无法打开文件错误。而它作为.apk下载,并在我们的设备中运行良好。请帮助我,我该如何解决这个问题。
knpiaxh11#
确保已将http Content-Type设置为application/vnd.android.package-archive这让chrome知道它是一个应用程序而不是zip。
Content-Type
application/vnd.android.package-archive
z0qdvdin2#
一个简单的解决方案是在/etc/mime.types中添加下面这一行
application/vnd.android.package-archive apk
重启你的Apache。这将迫使浏览器以“apk”格式下载文件,而不附加“zip”。
x0fgdtte3#
如果下载为. zip1.您或您的客户可以使用File Expertapplication解压缩此.zip文件,它必须在解压缩文件夹中显示. apk文件1.给你的用户一个直接的apk链接,他/她使用默认浏览器下载或使用一些其他像opera,如果它是. apk文件链接,那么它必须被下载为是.1.您可能正在使用一些内容网站的压缩文件上特定的下载方法,请确保它为direct.apk链接.
application
1.最后但并非最不重要的**. apk只是一个zip文件所以这不是一个问题只是重命名它(从. zip到. apk)**如果你可以,我希望它会解决这个问题
vmjh9lq94#
在我的情况下,这个问题也和@ alireza fattahi提到的标题一样。在此共享此信息是因为在我们的案例中,文件位于Azure存储中,并通过CDN访问,以防任何人遇到相同的问题。
默认情况下,上传的APK blob的内容类型为application/zip,并且reposnse标头中反映了相同的内容类型,导致下载的文件在下载完成时在Android操作系统上获得.zip扩展名。我必须在存储CDN中设置一个自定义规则,以覆盖application/vnd.android.package-archive响应中的content-type标头请记住在设置新规则后清除CDN缓存了解更多关于Azure CDN rules engine的信息。
application/zip
.zip
content-type
mefy6pfw5#
以下是示例://在这里设置你的下载apk路径"/upload/apk/忍者11.apk ";
//Set header here like this $headers = [ 'Content-Type'=>'application/vnd.android.package-archive', 'Content-Disposition'=> 'attachment; filename="ninja-release.apk"', ];
这是Laravel框架代码,但同样的,你也可以在其他框架中使用。注意:这不是Android方面的问题
5条答案
按热度按时间knpiaxh11#
确保已将http
Content-Type
设置为application/vnd.android.package-archive
这让chrome知道它是一个应用程序而不是zip。
z0qdvdin2#
一个简单的解决方案是在/etc/mime.types中添加下面这一行
重启你的Apache。
这将迫使浏览器以“apk”格式下载文件,而不附加“zip”。
x0fgdtte3#
如果下载为. zip
1.您或您的客户可以使用File Expert
application
解压缩此.zip文件,它必须在解压缩文件夹中显示. apk文件1.给你的用户一个直接的apk链接,他/她使用默认浏览器下载或使用一些其他像opera,如果它是. apk文件链接,那么它必须被下载为是.
1.您可能正在使用一些内容网站的压缩文件上特定的下载方法,请确保它为direct.apk链接.
1.最后但并非最不重要的**. apk只是一个zip文件所以这不是一个问题只是重命名它(从. zip到. apk)**如果你可以,我希望它会解决这个问题
vmjh9lq94#
在我的情况下,这个问题也和@ alireza fattahi提到的标题一样。
在此共享此信息是因为在我们的案例中,文件位于Azure存储中,并通过CDN访问,以防任何人遇到相同的问题。
Azure存储和CDN修复
默认情况下,上传的APK blob的内容类型为
application/zip
,并且reposnse标头中反映了相同的内容类型,导致下载的文件在下载完成时在Android操作系统上获得.zip
扩展名。我必须在存储CDN中设置一个自定义规则,以覆盖
application/vnd.android.package-archive
响应中的content-type
标头请记住在设置新规则后清除CDN缓存
了解更多关于Azure CDN rules engine的信息。
mefy6pfw5#
以下是示例://在这里设置你的下载apk路径
"/upload/apk/忍者11.apk ";
这是Laravel框架代码,但同样的,你也可以在其他框架中使用。
注意:这不是Android方面的问题