【问题标题】:Minimal script--still getting Cannot modify header information - headers already sent [duplicate]最小的脚本-仍然无法修改标头信息-标头已发送[重复]
【发布时间】: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 的建议检查任何空格。您也可以删除?&gt;,因为它不是必需的,有时可以注入空格。
  • 是的,没有空格!是否可能有一些隐藏的新行?我正在 Windows 上的 Visual Studio 中进行编辑。
  • 使用记事本.....或合适的 PHP 编辑器
  • 可能是文件开头的 unicode BOM。它们将是 &lt;? 部分之前的 2 个不可见字节,并计为输出。

标签: php http file-upload download


【解决方案1】:

您的脚本在测试时运行良好 - 确保脚本的开头或结尾没有任何空格。

【讨论】:

  • 问题是我的编辑器 Visual Studio 似乎在我的脚本之前添加了不可见的字节。
  • 非常感谢。我删除了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
  • 2012-06-19
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
相关资源
最近更新 更多