我發現頭一場噩夢圍繞讓我的頭回顯到屏幕上,我有一個文件的用戶下載,工作正常。然而,我希望回顯屏幕上已發送xx文件;但是這個回聲只是放在發送的文件中。如何停止頭,所以我可以從相同的功能(PHP)
全部下載中心代碼如下:
function download()
{
$orderNo = $_POST['orderNo'];
$lines = file('F:/xamptest/htdocs/UniProject/upload/Amazon output.txt');
$lineCount = count($lines);
if($orderNo>0&&$orderNo<=$lineCount)
{
$lineEx = explode("\t", $lines[($orderNo-1)]);
$file = fopen('Order.txt', 'w');
fwrite($file, $lineEx[8].PHP_EOL .$lineEx[17].PHP_EOL .$lineEx[18].PHP_EOL .$lineEx[19].PHP_EOL .$lineEx[20].PHP_EOL .$lineEx[21].PHP_EOL .$lineEx[22].PHP_EOL .$lineEx[23].PHP_EOL);
fclose($file);
$file = 'Order.txt';
ob_end_clean();
header("Cache-Control: private");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
readfile($file);
echo "Current order, number: ".$orderNo."<br> Has been downloaded";
}
else
{
echo "Please enter a valid Order Number between 1 and ".$lineCount;
}
}
我似乎無法找到如何停止頭而不使用出口();這仍然意味着它不會顯示回顯,並且還會使用ob_end_clean();以任何其他方式導致發送的文件爲空。只有我能想到的其他東西是在它自己的函數中使用echo,但是它同時運行的頭文件仍將它放在文件中。
非常感謝您的幫助 - 湯姆。
凡是輸出時發送的報頭將被包含在下載文件中。您不能用該文件發送另一條消息。所以你必須做的是假的。當你點擊這個文件的鏈接時,你仍然會在鏈接頁面上。您可以使用JavaScript來點擊鏈接,顯示一條消息。有幾個下載網站只是將您鏈接到一個頁面,顯示「您的下載很快就會開始」,他們將顯示該頁面並將您重定向到一個下載文件(或發送標題的腳本)。 –