下面的代码在桌面浏览器(Chrome, FF)上运行良好,但当从Android手机(HTC Evo, Galaxy S)设备上执行时,文件被下载但为空。我在我的。htaccess文件中添加了以下行:
AddType application/vnd.android.package-archive .apk
…如果我从HTML锚点直接链接到.apk,则下载工作如预期。
我需要通过PHP脚本提供下载,以便我可以更新数据库记录。下面的PHP方法甚至可以在blackberry设备上正常工作:
public function download($file)
{
if (!is_readable($file)) {
return false;
}
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename="test.apk"');
header('Content-length: ' . filesize($file));
readfile($file);
return true;
}
便宜的解决方案:telnet到服务器,直接讨论HTTP,看看从PHP脚本下载与从服务器下载之间的标头有什么不同。
你也可以考虑像重定向你的用户到文件,或者如果你想更复杂,X-sendfile.
你也可以看看这个问题的答案:最快的方式使用PHP服务文件