【发布时间】:2012-04-17 01:31:02
【问题描述】:
这快把我逼疯了。这似乎是一个简单的错误——我已经看到很多关于他们的脚本的帖子比我的要复杂得多。
我有一个 php 脚本,它应该通过设置标题来强制下载。我已将脚本精简为:
<?php
header("Content-Type: audio/mp3");
header("Content-Disposition: attachment; filename=\"audio.mp3\";" );
readfile("audio.mp3");
exit();
?>
为什么我的标头会被发送出去?我尝试了 obj_start 和 obj_flush,但到目前为止还没有运气。这可能是我的主机的问题吗?我正在使用 1and1.com
【问题讨论】:
-
您确定脚本的开头或结尾没有空格吗?换行符?
-
当我在我的开发服务器上测试时,您的脚本似乎运行良好,因此代码没有任何问题。按照@WaynnLue 的建议检查任何空格。您也可以删除
?>,因为它不是必需的,有时可以注入空格。 -
是的,没有空格!是否可能有一些隐藏的新行?我正在 Windows 上的 Visual Studio 中进行编辑。
-
使用记事本.....或合适的 PHP 编辑器
-
可能是文件开头的 unicode BOM。它们将是
<?部分之前的 2 个不可见字节,并计为输出。
标签: php http file-upload download