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

时间:2015-07-28 15:30:06

标签: php

我正在使用的代码:

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服务器上运行此代码,那么它工作正常(没有回声,但是下载)

以下内容与sdcreen相呼应:这是一个测试文件! Nowno错误 从而"这是一个测试文件!!! NOW"是文件的内容

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

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

我在<?php开幕式宣言之前放了一个空格 - 这就是问题!