我正在尝试使用PHP将json字符串从javascript文件保存到服务器上的本地文件,但是,我的json文件根本没有被修改。 这是我的Javascript:
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”的测试也不起作用或出错。
最后,这是我的文件夹结构:
答案 0 :(得分:8)
这是您的解决方案。
Js代码
function saveToFile(data){
jsonString = JSON.stringify(data);
$.ajax({
url: 'php/save.php',
data : {'jsonString':jsonString},
type: 'POST'
});
}
php code。
$data = $_POST['jsonString'];
//set mode of file to writable.
chmod("../website-contents.json",0777);
$f = fopen("../website-contents.json", "w+") or die("fopen failed");
fwrite($f, $data);
fclose($f);
答案 1 :(得分:1)
我同意评论指出你必须有权限问题。但是,在您更正此问题后,它将无法工作。
$data = $_POST['jsonString'];
但是你在哪里设置一个名为jsonString
的密钥?使用
function saveToFile(data){
var jsonString = JSON.stringify(data);
$.post("php/save.php", {
jsonString: jsonString
})
}
代替。