首页 > 解决方案 > php 文件如何保存 jquery ajax POST 接收的文件?

问题描述

我是一个在相对简单的事情上苦苦挣扎的菜鸟(或者我相信)。使用 jquery ajax 将 json 或更精确的 geojson 对象写入文件。到目前为止,我的方法看起来像这样

    $.ajax({
        type: 'POST',
        url: "data/markers.geojson",   //url of receiver file on server
        data: data,                    //geojson data
        dataType: "json"               
      });

我认为看起来不错,但不幸的是,markers.geojson 文件仍然完全为空。如果我在“$.ajax”之前将数据变量的内容记录到控制台,它就在那里。网络控制台显示字节已传输。

现在经过大量搜索,我注意到其他人似乎都在将 json 数据发送到 .json 文件而不是 .php 文件。不幸的是,他们似乎都在 php 端做了其他事情,或者没有人认为有必要发布将接收到的 json 保存到服务器上的文件的方法。

唉,我是一个初学者,在这里可能真的需要一些帮助 - .php 文件应该如何看起来只是将 json 保存到文件中?

编辑另一个问题中的这个答案解决了这个问题:

<?php
$myFile = "testFile.txt";
$phpObj = json_decode($_POST['json']);
file_put_contents($myFile,$phpObj);
echo '{ "success": true }';
?>

标签: phpjqueryajax

解决方案


试试这个例子:

<?php
//error_reporting(E_ALL);
//var_dump($_SERVER);
$post_data = $_POST['data'];
if (!empty($post_data)) {
    $dir = 'YOUR-SERVER-DIRECTORY/files';
    $file = uniqid().getmypid();
    $filename = $dir.$file.'.txt';
    $handle = fopen($filename, "w");
    fwrite($handle, $post_data);
    fclose($handle);
    echo $file;
}
?>

您的 PHP 文件桅杆有名称:index.php到目录:/data/markers.geojson/

你编码:

 $.ajax({
        type: 'POST',
        url: "https://www.example.com/data/markers.geojson/",   //url of receiver file on server
        data: data,                    //geojson data
        dataType: "json"               
      });

推荐阅读