从PHP文件下载Phonegap

时间:2014-05-08 14:58:59

标签: php android cordova

我有一个从我的服务器下载文件的PhoneGap应用程序。问题是,如果我将phonegap FileTransfer.download uri直接指向该文件,则可以下载该文件。但是,如果我将FileTransfer.download的URI指向具有以下内容的download.php文件:

header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$file);
header("Content-Length: ".filesize($file));
readfile($file);
exit;

我的phonegap应用程序下载文件。但它只有1个字节的数据,无法下载我的文件内容(它是一个MP3文件)。

有人能告诉我为什么会这样吗?我需要使用download.php文件,因为我在允许下载文件之前发送哈希来验证用户凭据。

我已经在这上面工作了几个小时而无法找到解决方案。 fileTransfer.download有问题吗?我应该对它进行其他设置吗?

2 个答案:

答案 0 :(得分:0)

您的代码显示正确,但这是您可以尝试的其他实现。

header("Content-Type: " . mime_content_type($file));
header("Content-Length: " . filesize($file));

$file_name = pathinfo($file);

header("Content-Disposition: attachment; filename=\"" . $file_name['basename'] . "\"");
header("Content-Transfer-Encoding: binary");

if ($fp=fopen($file, "r")){ 
    fpassthru($fp);
}

答案 1 :(得分:0)

您的内容类型标题显示不正确。

尝试更改标题:

header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");