Заголовки для принудительной загрузки файла apk


Я делаю скрипт, который увеличивает счетчик загрузки файла 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 байт". Таким образом, по сути, он не загружает содержимое файла.

Что я могу делать не так? Решение для этого?

ВАЖНО: Он должен работать на мобильных устройствах.

);

Author: William The Dev, 2012-12-15

2 answers

Я никогда не обращался к ссылке .apk, которая не вызывала загрузку, поэтому я не уверен, что в этом есть необходимость в принудительной загрузке. Что касается увеличения счетчика, я бы, вероятно, просто сослался на страницу, которая пересылается в файл apk после завершения счетчика.

Например, свяжите кого-нибудь с: getapk.php?apkid=1

Затем на getapk.php сделайте что-то вроде этого:

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

Конечно, это оставляет без внимания много деталей, но если вам нужна помощь в чем-то еще, я был бы буду рад предоставить более подробную информацию.

 0
Author: SISYN, 2012-12-14 21:19:52

Я понял, что мне не нужно использовать сложную информацию заголовка, особенно если скрипт будет перемещен с сервера на сервер, где тип mime .apk не является родным и поэтому новичку может быть сложно настроить.

Достаточно простого перенаправления:

$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);

Вуаля! Я увеличил счетчик, и загрузка будет перенесена в браузер.

 0
Author: William The Dev, 2012-12-14 22:46:11