1

我有这个表单,您可以在其中将文本输入文本区域,然后提交 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"]; 它确实返回带有内容的文本文件。但为什么不当它的输出。?

4

1 回答 1

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);

?>

于 2013-03-12T09:49:33.477 回答