我使用以下代码呈现要下载的文件。该文件使用数据正确保存在服务器上,并提示下载,但下载的文件为空。新文件与此脚本位于同一目录中。
<?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");
?>
答案 0 :(得分:4)
您实际上从未将文件发送给用户。在标题后添加:
readfile($name);