从网站在主机服务器上创建文本文件



我试图让用户能够将文本文件写入网站主机服务器上的目录。用例如下所示:

  1. 用户访问 www.example.com/createtext
  2. 用户在文本机器人中键入他们想要保存的内容,例如"Hello">
  3. 托管网站的服务器在其目录之一中创建文本文件。
  4. 在服务器上,现在有一个 C:/somedirectory/dailytexts/的文本文件,里面写着"Hello">

我目前编写了一个简单的页面,其中包含一个表单,该表单将接收文本信息并将其保存到具有当前日期名称的文本文件中。

<script language="Javascript">
var time = new Date();
var formattedTime = time.toLocaleTimeString();
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + 
encodeURIComponent(text));
pom.setAttribute('download', formattedTime);
pom.style.display = 'none';
document.body.appendChild(pom);
pom.click();
document.body.removeChild(pom);
}
</script>
<form id="form" class="topBefore" onsubmit="download(this['name'].value, this['text'].value)">
<textarea id="message" type="text" placeholder="Hello" name="text"></textarea>
<input id="submit" type="submit" value="Download Text File">
</form>

这只是将文本文件下载到用户的计算机。相反,我希望在主机上创建文件。

有没有办法这样做?特别是,仅使用JavaScript或Java。但是,如果必须使用PHP之类的东西来完成,那么那也可以。

AFAIK,浏览器中的JS只允许您在客户端做一些事情,而不使用...(例如(服务器端的 PHP 脚本。

这个解决方案(现在(只使用HTML和PHP,消除了JS的需要。

网页(修改(:

<form id="form" class="topBefore" action="createtext.php" method="GET">
<textarea id="message" type="text" placeholder="Hello" name="name"></textarea>
<textarea id="message2" type="text" placeholder="Hello" name="text"></textarea>
<input id="submit" type="submit" value="Download Text File">

PHP:(文件名为createtxt.php(

if(isset($_GET['name']) && isset($_GET['text']))  {
$filename = preg_replace('#[^A-Za-z0-9_-]#', '', $_GET['name']);
$file = $_SERVER['DOCUMENT_ROOT']."/textfiles/$filename.txt";
$f = fopen($file, 'w');
fwrite($f, $_GET['text']);
fclose($f);
echo 'Success.';
}  else  {
echo 'Error.';
}

文件创建需要两个参数 - 文件名和内容,而问题的 HTML 中仅提供了一个textarea。所以现在包括另一个文件名。 jQuery/JS 被删除。相反,表单现在将数据发送到createtext.php,后者创建文件(fopen(,写入文本(fwrite(并回显"成功"。

  1. 我们将文本文件保存到名为textfiles的文件夹中,该文件夹与createtext.php位于同一目录中。该文件夹必须从以前存在 - 它不会自动创建,如果它不存在,PHP 将抛出错误。
  2. 您可以将echo 'Success.';替换为其他操作:例如重定向到另一个页面或同一页面(header(,或echoing/readfile- ing HTML 页面。

相关内容

  • 没有找到相关文章

最新更新