所以我有一个用户完成的表单,然后将它们发送到一个php页面,该页面通过$ _POST发送所有变量,然后将输出写入txt文件。 - 工作得很好。我的问题是我试图强迫用户在创建文件的同一页面上下载它,在创建文件之后我似乎无法使其工作,除了正在创建的文件之外没有任何反应....
以下是我所拥有的基本知识:
编辑:发现问题 - 我的fclose在线路上发生致命错误......有什么想法在那里有什么问题?
$myfile="c-form" . date('m-d-Y_hia').'.txt';
$fileHandle = fopen($myfile, 'w');
//write stuff to file
$fclose($fileHandle);
//file is now closed
//now force user to download file that was just made
header('Content-disposition: attachment; filename=$myfile');
header('Content-type: text/plain');
答案 0 :(得分:2)
您需要在下面的行中使用双引号:
header("Content-disposition: attachment; filename=$myfile");
答案 1 :(得分:0)
尝试这样的事情:
$myfilename="c-form".date('m-d-Y_hia').'.txt';
// collect the data to the be returned to the user, no need to save to disk
// unless you really want to, if so, use file_put_contents()
$dataForFile="test data to be returned to user in a file";
header('Content-type: application/x-download');
header('Content-Disposition: attachment; filename="'.$myfilename.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.strlen($dataForFile));
set_time_limit(0);
echo $dataForFile;
exit;
无需使用fopen()
和fclose()
,file_get_contents()
和file_put_contents()
将为您完成所有这些工作,并且已经做了多年。