这是我的代码:
<?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。可能有什么问题?
答案 0 :(得分:0)
我发现这篇文章有关,似乎他们能够使用一些额外的标题,也就是说你的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");
}