繁体   English   中英

强制下载apk文件的标题

[英]Headers for force download of apk file

我正在做一个脚本,增加APK文件下载的计数器,然后将文件发送到浏览器下载。

这就是我所拥有的:

<?php
    $file = "android.apk";

    function force_download($file){
    header("Pragma: public", true);
    header("Expires: 0"); // set expiration time
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment; filename=".basename($file));
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($file));
    die(file_get_contents($file));
    }

    force_download($file

问题是,使用像Firefox这样的浏览器,它会下载,但它就像'android.apk - 0 bytes'。 所以从本质上讲,它不会下载文件的内容。

我可能做错了什么? 这个解决方案?

重要提示 :它必须在移动设备上运行。

);

我从来没有访问过强制下载的.apk链接,所以我不确定强制下载是什么需要。 至于递增计数器,我可能只是链接到一个页面,在计数器完成后转发到apk文件。

例如,将某人链接到:getapk.php?apkid = 1

然后在getapk.php上执行以下操作:

 $update = mysql_query("UPDATE apps SET downloads...");
 if ( $update ) { header("Location: appname.apk"); }

当然,这留下了很多细节,但如果你需要其他任何帮助,我很乐意提供更多细节。

我已经意识到我不需要使用复杂的头信息,特别是如果脚本将从服务器移动到服务器,其中.apk mime类型不是本机的,因此可能很难设置新手。

一个简单的重定向将:

$file_name = $_GET['f']; //$_GET['f'] has the link to the file like http://mydomain.com/file/android.apk


//Do database query or increase download counter

header('location: '.$file_name);

瞧! 我增加了计数器,下载将被推送到浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM