2009-10-28 78 views
2

使用以下代碼來呈現文件以供下載。該文件與數據正確保存在服務器上,並提示下載,但下載的文件爲空。新文件與此腳本位於同一目錄中。試圖寫入文件並強制使用php下載

<?php 

if(strlen($_POST['name'])<1){ 
echo "error: you must enter a filename<br><a href=data.php>back</a>"; 
exit(); 
} 

$name = $_POST['name']; 
$data = file_get_contents("temp.php"); 

$fh = fopen("$name", 'w') or die("can't open file"); 
fwrite($fh, $data); 
fclose($fh); 

header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Length: ". filesize("$name").";"); 
header("Content-Disposition: attachment; filename=$name"); 
header("Content-Type: application/octet-stream; "); 
header("Content-Transfer-Encoding: binary"); 

?> 

回答

4

你永遠不會真的發送文件給用戶。在標題後加上:

readfile($name); 
+0

謝謝!效果很好 – mrpatg 2009-10-28 09:44:27