通过Javascript从PHP保存到服务器端文件

时间:2015-07-09 20:18:10

标签: 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是一个有效的变量,我可以将其正确记录到控制台中。

这是我的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”的测试也不起作用或出错。

最后,这是我的文件夹结构: enter image description here

2 个答案:

答案 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
  })
}

代替。