我现在围绕Jquery,但想要将文本区域保存到txt文件。最终目标是能够将文本文件上传到同一个地方。我的代码中缺少什么?
不知道我在这段代码中定义textarea的位置,或者它是否应该在另一个文件中,或者html文件的后缀是php?
下面的干杯是我对php的尝试。
CODE
<?php
if(isset($_POST['submit_save'])) {
$file = "output.txt";
$output = $_POST['output_str'];
file_put_contents($file, $output);
$text = file_get_contents($file);
header("Content-type: application/text");
header("Content-Disposition: attachment; filename=\"$file\"");
echo $text;
}
else
{
$_POST['output_str'] = "";
}
?>
</head>
<body>
<input id="submit_save" type="button" value="save" />
</br></br></br>
<div id="opt"></div>
</body>
</html>
答案 0 :(得分:2)
$_POST
是名字。您需要将名称添加到#submit_save
<input name="submit_save" id="submit_save" type="button" value="save" />
答案 1 :(得分:0)
使用readfile函数,不要忘记“退出”后不要破坏文件。与Enve said类似,POST数组键是html“name”。
这是手册页中的一个例子:
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
答案 2 :(得分:0)
您的PHP脚本在您的网络服务器上运行,而不是在浏览器中运行。脚本的结果就是浏览器收到的内容!
在阅读您的问题时,(我)是否要将输入的数据(文本区域)作为文件或<作为< strong> HTML页面。你似乎想要两个,这是不可能的,选择一个。
Fab Sa已经演示了如何从PHP向浏览器发送文件,因此我不会进一步讨论。
要在 HTML网页的文本区域中填写输入的数据,您必须在HTML <textarea>
中添加<form>
- 标记。像这样:
<form method="post" action="<?= $PHP_SELF ?>">
<textarea name="output_str"><?= $_POST['output_str'] ?></textarea>
<input id="submit_save" name="submit_save" type="button" value="save" />
</form>
删除代码的这部分(部分将数据作为文件发送):
$text = file_get_contents($file);
header("Content-type: application/text");
header("Content-Disposition: attachment; filename=\"$file\"");
echo $text;
注意:出于安全原因,您应该从不使用$_POST['output_str']
而不使用sanitizing(我在示例中省略了这一点以保持清晰)。
答案 3 :(得分:0)
我认为你正在尝试这样的事情。
<?php
if(isset($_POST['textfield'])) {
$file = "output.txt";
$output = htmlspecialchars ($_POST['textfield'] );
file_put_contents($file, $output );
$text = file_get_contents($file);
header("Content-type: application/text");
header("Content-Disposition: attachment; filename=\"$file\"");
echo $text;
exit;
}
?>
<html>
<head>
<title>Your app</title>
</head>
<body>
<form method="POST">
<textarea name="textfield"></textarea>
<input id="submit_save" type="button" value="save" />
</form>
</body>
</html>