PHP txt下载不写文本区域内容

时间:2013-03-12 09:09:20

标签: php textarea

我有这个表单,你在文本区域输入文本,然后提交php生成一个文本文件,该文件应该包含在文本区域中输入的文本。 但问题是我写的代码,文本文件确实下载但没有文本。 所以我将文本区域更改为带有文本类型的输入字段,并返回文本文件中的数据,但没有换行符。这是我的代码

<html><body>    
<form action="download.php" method="post">
<textarea id="output" name="output"></textarea>
<input type="hidden" name="op" type="hidden" id="fakeop" >
<input type="submit">
</body></html>

php文件的内容是

<?php
$filename = 'random.txt';
$somecontent = $_REQUEST["output"];
!$handle = fopen($filename, 'w+');
fwrite($handle, $somecontent);
fclose($handle);

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

readfile($filename);

?>

如果我改为$ somecontent = $ _REQUEST [“op”]; 它确实返回带有内容的文本文件。但为什么不在它的输出。?

1 个答案:

答案 0 :(得分:0)

你好请用以下代码测试php页面

<?php
$filename = 'random.txt';
$somecontent = $_POST["output"];
!$handle = fopen($filename, 'w+');
fwrite($handle, $somecontent);
fclose($handle);

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

readfile($filename);

&GT;