2009-10-28 82 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