PHP readfile()将文件内容回显到屏幕上,但不会';t下载

PHP readfile()将文件内容回显到屏幕上,但不会';t下载,php,Php,我正在使用的代码: function DownLoading($Peter) { // if(ini_get('zlib.output_compression')) // ini_set('zlib.output_compression', 'Off') $File = ""; $Filename = ""; If ($Peter == "Farm") { $File = "TestFile.txt"; $File

我正在使用的代码:

function DownLoading($Peter)
{
//    if(ini_get('zlib.output_compression'))
//       ini_set('zlib.output_compression', 'Off')
        $File = "";
    $Filename = "";
    If ($Peter == "Farm") {
        $File = "TestFile.txt";
        $FileName = $File;  //"TestFile.txt";
        $len = filesize($File); // Calculate File Size
        if (file_exists("TestFile.txt")) {
            header('Content-Description: File Transfer');
            header('Content-Type: text/plain');
         header('Content-Disposition: attachment; filename="TestFile.txt"');
            header('Transfer-Encoding: binary');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: ' . $len);
            ob_clean();
            $wasdownloaded = readfile("TestFile.txt");
            if ($wasdownloaded === false)
                echo "error";
            else {
                echo "no error";
                Flush();
                exit;
            }
        }
    }
}
奇怪的是,如果我在wamp服务器上运行这段代码,那么它就可以正常工作(没有回音,但可以下载)

以下内容会在SDScreen上显示:这是一个测试文件!!!现在没有错误 其中“这是一个测试文件!!!NOW”是文件的内容


谁能帮帮我吗?

我做了一件非常愚蠢的事,导致了同样的事情。基本上,如前所述,您必须确保尚未发送任何内容


我在
前面加了一个空格,我做了一件非常愚蠢的事情,导致了同样的事情。基本上,如前所述,您必须确保尚未发送任何内容


我在
你的问题是什么?你是否尝试过
标题(“内容类型:应用程序/强制下载”)?另外,请记住,
header
只有在您的请求中没有发送任何数据的情况下才起作用。您所说的“仅在您的请求中未发送任何数据时有效”是什么意思?作为旁注,您分配
$File=“TestFile.txt”,然后分配
$FileName=$File这似乎不是必需的。但是,尽管这两个变量包含您的文件名,您还是继续使用literal
TestFile.txt
。你可能想解决这个问题。这基本上是因为我一直在尝试各种方法。这可能是原因吗?如果没有,我将在最终版本中修复它。您的问题是什么?您是否尝试过
标题(“内容类型:应用程序/强制下载”)?另外,请记住,
header
只有在您的请求中没有发送任何数据的情况下才起作用。您所说的“仅在您的请求中未发送任何数据时有效”是什么意思?作为旁注,您分配
$File=“TestFile.txt”,然后分配
$FileName=$File这似乎不是必需的。但是,尽管这两个变量包含您的文件名,您还是继续使用literal
TestFile.txt
。你可能想解决这个问题。这基本上是因为我一直在尝试各种方法。这可能是原因吗?如果没有,我会在最终版本中修复它。我仔细检查了代码,但没有任何更改。这让我发疯!我已经做了三个星期了,没有任何进展。谢谢。你让我走上了正确的道路!我以前输出过一些东西,但是通过将下载例程移动到一个单独的文件,它成功了!我仔细检查了代码,但没有任何改动。这让我发疯!我已经做了三个星期了,没有任何进展。谢谢。你让我走上了正确的道路!我以前输出过一些东西,但是通过将下载例程移动到一个单独的文件,它成功了!