下载后无法安装APK

时间:2020-08-31 13:47:27

标签: android download location apk

我希望用户从我的网站下载一个应用程序并将其安装在他们的设备上。 用户具有授权码,并在提交表单后开始下载。

我有这个问题...不起作用:) 代码:

if($_SERVER["REQUEST_METHOD"] == "POST"){
    if($download_allow){
        header("Cache-Control: public");
        header("Content-description: File Transfer");
        $contenttype = "application/com.android.package-install";
        header("Content-Type: " . $contenttype);
        header("Content-Disposition: attachment; filename=\"".FILENAME."\""); 
        header("Content-Tranfer-Encoding: binary");
        readfile(FILE_PATH);
    }
}

使用上述代码,我可以下载APK,但在安装时出现解析错误。

如果我使用链接:

<a href="myfolder/apk/release.apk" type="application/vnd.android.package-archive">Download MyApp</a>

完全没有问题。我可以下载并安装apk。 我不想使用链接,因为我想使用一次性授权码。

那么上面的代码有什么问题?我可以下载但遇到解析错误吗?

好的...我用以下代码完成了

header('Content-Description: File Transfer');
                header('Content-Type: application/vnd.android.package-archive');
                header('Content-Disposition: attachment; filename='.basename(FILENAME));
                header('Content-Transfer-Encoding: binary');
                header('Expires: 0');
                header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                header('Pragma: public');
                header('Content-Length: ' . filesize(FILE_PATH));
                header('Location:'.FILE_PATH);

这在HTACCESS中

AddType application/octet-stream .apk

AddType application/vnd.android.package-archive .apk

ForceType application/octet-stream

但是现在我的问题是: 这样安全吗?

0 个答案:

没有答案