php - 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 }';
?>
- 只是不要忘记在您的 apache 中启用 php ;-) 再次感谢耐心的@ADyson 引导初学者完成此操作。
解决方案
试试这个例子:
<?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"
});
推荐阅读
- javascript - 只匹配包括小数的数字
- javascript - 在 NodeJS 中修改 `module.paths` 是否合法?
- sql - INNER JOIN 里面的东西的计数?
- python - vec4的多个mat4,然后在Python中使其成为vec3
- arrays - 如何在 Swift 的数组中找到多个峰值和谷值元素?
- cmd - 如何从 Windows 注册表中获取 Windows 的产品名称?
- angular - 如何对 NGXS 异步 http 请求进行单元测试?
- python - 使用 az cli 或 python sdk 检索 blob 存储连接字符串?
- python - 将沿 ND 数组的特定轴的选定索引/行的数组与其总和组合/替换
- javascript - 如何使用由模型属性组成的参数创建自定义验证属性