我正在尝试找到一种方法将内容发布到我托管的另一个 .txt 文件上。我知道有一种方法可以加载数据,但是有没有办法保存它?
为了加载,我有:
<!doctype html>
<html>
<body>
<script src=/files/scripts/jquery.js></script><!--i host jquery-->
<script>
jQuery.get('/development/lol.txt',function(data){
$('body').text(data);
});
</script>
</body>
</html>
但是有没有一种方法可以将数据写入 .txt 文件,就像我加载它一样?
最佳答案
注意,这只是一个概念示例,在生产环境中您必须考虑更多细节
有关您的开发环境(即 Web 服务器软件、使用的服务器端语言)的信息有限。但这是我在 LAMP(linux、apache、mysql、php)设置情况下要做的事情。
我创建了一个 JavaScript 函数来处理对远程文本文件的写入:
function logOnLoad()
{
var sData = "Page has been loaded";
$.ajax({
url:"https://example.domain.com/logData.php",
data: {sData: sData},
method:"post"
}).done(function()
{
alert("Finished Async write to server side file.");
})
}
然后,我将此函数订阅到一个事件句柄(不过,它可以是任何其他事件处理程序,这取决于您何时要写入此数据),对于此示例,我仅在 body 标记上使用 onload:
<body onload="logOnLoad()">
<p>test</p>
</body>
现在我的 javascript 函数执行 html 页面的 onload。现在我们需要编写服务器端代码来处理 ajax 请求,因此我创建一个名为 logData.php 的 php 文件并将其放入该文件中:
<?php
function writeData($sData, $sFilePath)
{
$sTargetFile = fopen($sFilePath, "a");
fwrite($sTargetFile, $sData);
fclose($sTargetFile);
}
if(isset($_POST['sData']))
{
writeData($_POST['sData'], "testLog.txt");
echo "done";
}
现在,每当我加载 test.html 时,它都会从 javascript 变量 sData 获取静态内容,并对 logData.php 执行 POST,logData.php 文件返回查找 writeData 函数调用中指定的文件(在这个例子我寻找testLog.txt)。它根据此信息创建一个文件句柄,然后我们执行 fwrite($sTargetFile, $sData) 并将内容写入服务器端文本文件。
关于javascript - 有没有办法使用 jQuery 将内容发布到服务器端 .txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948697/