通过Javascript从PHP保存到服务器端文件
我试图使用PHP将json字符串从javascript文件保存到服务器上的本地文件,但是,我的json文件根本没有被修改。 以下是我的Javascript:通过Javascript从PHP保存到服务器端文件,javascript,php,html,Javascript,Php,Html,我试图使用PHP将json字符串从javascript文件保存到服务器上的本地文件,但是,我的json文件根本没有被修改。 以下是我的Javascript: function saveToFile(data){ jsonString = JSON.stringify(data); $.ajax({ url: 'php/save.php', data : jsonString, type: 'POST' }); } 请注意,jsonString是一个有效的变量
function saveToFile(data){
jsonString = JSON.stringify(data);
$.ajax({
url: 'php/save.php',
data : jsonString,
type: 'POST'
});
}
请注意,jsonString是一个有效的变量,我可以将它正确地记录到控制台中
以下是我的PHP:
<?php
$data = $_POST['jsonString'];
$f = fopen("../website-contents.json", "w") or die("fopen failed");
fwrite($f, $data) or die("fwrite failed");
fclose($f);
?>
请注意,即使是试图将Hello World保存到test.txt的测试也不起作用,或者是由于错误
最后,这里是我的文件夹结构:
这是你的解决方案
Js代码
php代码
这是你的解决方案
Js代码
php代码
我同意那些指出你一定有许可问题的评论。但是,在您纠正此问题后,它也将不起作用。你有
$data = $_POST['jsonString'];
但是在哪里设置一个名为jsonString的键呢?使用
相反。我同意评论中指出的您必须有权限问题。但是,在您纠正此问题后,它也将不起作用。你有
$data = $_POST['jsonString'];
但是在哪里设置一个名为jsonString的键呢?使用
相反。尝试使用var\u转储$\u POST变量,可能会让您有更多的了解。php端的键“jsonString”很可能不正确。file\u put\u contents$uploadLocation./filename.json,$fileJsonString;确保您对保存此文件的位置具有正确的写入权限。打开后立即将错误报告添加到文件顶部您是否在浏览器控制台中查看了请求/响应?@crowebird我回显了我的$数据,但其全部正确,它给了我来自my or die的fopen failed错误。请尝试var\u转储$\u POST变量,可能会给您一些更深入的了解。php端的键“jsonString”很可能不正确。file\u put\u contents$uploadLocation./filename.json,$fileJsonString;确保您对保存此文件的位置具有正确的写入权限。打开后立即将错误报告添加到文件顶部您是否在浏览器控制台中查看了请求/响应?@crowebird我回显了我的$数据,但其全部正确,它给我的fopen失败错误从我的或死。数据正在正确解析,谢谢!但是,即使在设置chmod之后,我也会收到fopen失败的消息。fopen中的路径是相对于PHP/JS还是绝对路径?可以使用$f=fopen../website-contents.json,w+;w+或diefopen失败,而不是$f=fopen../website-contents.json;然后检查错误?因此,我可以更好地理解这里发生的事情。最终,这只是一个权限错误,设置sudo chmod 777 website-contents.json解决了它!数据正在正确解析中,谢谢!但是,即使在设置chmod之后,我也会收到fopen失败的消息。fopen中的路径是相对于PHP/JS还是绝对路径?可以使用$f=fopen../website-contents.json,w+;w+或diefopen失败,而不是$f=fopen../website-contents.json;然后检查错误?因此,我可以更好地理解这里发生的事情。最终,这只是一个权限错误,设置sudo chmod 777 website-contents.json解决了它!
$data = $_POST['jsonString'];
function saveToFile(data){
var jsonString = JSON.stringify(data);
$.post("php/save.php", {
jsonString: jsonString
})
}