php mp3在android上下载html文件

时间:2015-01-23 17:47:57

标签: php android html

这是我的代码:

<?php
$download = './downloads/'.$mp3;

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".basename($download)); 
header("Content-Type: audio/mpeg");
readfile($download);
?>

在Android上,一旦下载开始,它就会下载一个不可读的htm文件。 $ mp3是这样的:NAME.mp3。可能有什么问题?

1 个答案:

答案 0 :(得分:0)

嗯,你看过你的PHP错误日志了吗?这听起来像你的服务器/开发环境没有正确运行PHP。

我发现这篇文章有关,似乎他们能够使用一些额外的标题,也就是说你的PHP工作正常:

https://stackoverflow.com/a/2367506/2080324

是的,但请记住标题告诉设备它是什么类型的文件。不同的设备将以不同的方式解释不同的文件。在我链接的示例中,他设置了mime-type和headers:

$dir = dirname($_SERVER['DOCUMENT_ROOT'])."/protected_content";
$filename = $_GET['file'];
$file = $dir."/".$filename;

$extension = "mp3";
$mime_type = "audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3";

if(file_exists($file)){
    header('Content-type: {$mime_type}');
    header('Content-length: ' . filesize($file));
    header('Content-Disposition: filename="' . $filename);
    header('X-Pad: avoid browser bug');
    header('Cache-Control: no-cache');
    readfile($file);
}else{
    header("HTTP/1.0 404 Not Found");
}