我有一个从我的服务器下载文件的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有问题吗?我应该对它进行其他设置吗?
答案 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");