我正在使用的代码:
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"是文件的内容
有人能帮助我吗?
答案 0 :(得分:0)
我做了一件非常愚蠢的事情,导致了同样的事情。基本上,如前所述,您必须确保已经发送了任何内容。
我在<?php
开幕式宣言之前放了一个空格 - 这就是问题!