我正在使用强制下载脚本来避免在我的网站中播放mp3文件。 它适用于我的电脑,但在我的Android手机中,下载无法启动! 在我的Android平板电脑中,文件扩展名变为filename.mp3; 所以文件必须重命名才能工作!!
这里有什么问题?
<?php
$file=str_replace("\0", null, htmlspecialchars($_GET['file']));
$name = $_GET['name'];
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$name.";");
readfile($file);
exit;
?>
我做了一个小改动,它在平板电脑上工作得很好。 但我的Android手机没有下载它。
header("Content-Disposition: attachment;filename = $name");
答案 0 :(得分:2)
您的文件名标头看起来不正确。试试这个:
header('Content-Disposition: attachment; filename="'.$name.'"');
答案 1 :(得分:1)
文件名末尾有一个分号:
.";");
答案 2 :(得分:0)
删除文件名后面的;
。基于the spec只是引用的字符串
标题应如下所示(注意文件名前面的空格和文件名周围的引号)
header("Content-Disposition: attachment; filename=\"".$name."\"");
答案 3 :(得分:0)
如果您将其更改为标题('Content-disposition:attachment; filename =“'。$ name。'”'),它应该有效。
如果你看一下RFC 2616,你会在19.5.1中注意到分号只是将处理类型(即“附件”)与文件名分开,文件名应该是带引号的字符串。