使用JavaScript在服务器上保存文件

使用JavaScript在服务器上保存文件,javascript,php,json,ajax,Javascript,Php,Json,Ajax,Js代码 var server = ''; var orig_chat = chatUpdateSucess; chatUpdateSucess = function(o){ if (o.GlobalChats && o.GlobalChats.length > 0) { //TODO: Add setting to enable/diosable this console.log(JSON.stringify(o.GlobalChats)); v

Js代码

var server = '';
var orig_chat = chatUpdateSucess;
chatUpdateSucess = function(o){
if (o.GlobalChats && o.GlobalChats.length > 0) {
    //TODO: Add setting to enable/diosable this
    console.log(JSON.stringify(o.GlobalChats));

    var xhr = new XMLHttpRequest();
    xhr.open("POST", server+"/api.php?request=log_gc");
    xhr.send(JSON.stringify(o.GlobalChats));

}
orig_chat.apply(this, arguments);
};
服务器代码为api.php

<?php 
header("Access-Control-Allow-Origin: *");
if(!empty($_POST['o.GlobalChats'])){
 $data = $_POST['o.GlobalChats'];
 $fname = time() . ".txt";//generates random name

  $file = fopen("" .$fname, 'w');//creates new file
   fwrite($file, $fclose($file);
  }

 ?>
尝试
var\u dump($\u POST['o.GlobalChats'])
查看数据是否到达服务器

您似乎没有正确地将文件写入系统。请阅读手册()中的示例

另外,使用
time()
也不安全,因为在极端情况下,两个文件可能在相同的UNIX时间戳上创建,其中一个文件将覆盖另一个文件

试着这样做:

$data = $_POST['o.GlobalChats'];

$fname = time() . "-" . rand ( 1 , 10000 ) . ".txt";

$handle = fopen($fname, 'w');

fwrite($handle, $data);

fclose($handle);
尝试
var\u dump($\u POST['o.GlobalChats'])
查看数据是否到达服务器

您似乎没有正确地将文件写入系统。请阅读手册()中的示例

另外,使用
time()
也不安全,因为在极端情况下,两个文件可能在相同的UNIX时间戳上创建,其中一个文件将覆盖另一个文件

试着这样做:

$data = $_POST['o.GlobalChats'];

$fname = time() . "-" . rand ( 1 , 10000 ) . ".txt";

$handle = fopen($fname, 'w');

fwrite($handle, $data);

fclose($handle);

它正在创建新文件,但它们是空的。[02-Jan-2016 17:34:20 America/Detroit]PHP警告:fwrite()希望参数1是resource,在第9I行的/home/kodabear/public_html/test/api.PHP中给出null添加了var_dump($_POST['o.GlobalChats']),以查看服务器是否正在获取数据,并在添加var_dump时显示为null(json解码(文件获取内容)php://input我得到数组(1){[0]=>object(stdClass){[1(7){[“PlayerId”]=>int(237186)[“toPlayerId”]=>int(0)[“chatid”]=>int(16869047)[“added”]=>string(21)”/Date(1453246164937)/“[“addedText”=>string(5)“23:29”[“PlayerLink”=>string(125)“p=Kodabear | 237186 | T | 78 | 1 | 0 | 0-144-0-240-186-0-0-0-0-0-0-0-0-0 | | IKnowAFighter |神经纤维瘤病意识日/月| 5-404 282-59”[“文本”=>string(1)“5”}请参见。您要么没有以
o.GlobalChats>的方式发送数据,要么没有通过
发送数据,要么创建新的文件是空的。[02-Jan-2016 17:34:20 America/Detroit]PHP警告:fwrite()希望参数1为resource,在第9I行的/home/kodabear/public\u html/test/api.PHP中给出null,我添加了var\u dump($\u POST['o.GlobalChats']),以查看服务器是否正在获取数据,并且在显示null,以及我添加var\u dump(json\u decode(file\u get\u contents)时php://input")));我得到数组(1){[0]=>object(stdClass)}1(7){[“PlayerId”]=>int(237186)[“toPlayerId”]=>int(0)[“chatid”]=>int(16869047)[“added”]=>string(21)”/Date(1453246164937)/“[“addedText”=>string(5)“23:29”[“PlayerLink”=>string(125)”p=Kodabear | 237186 | T | 78 | 1 | 0 | 0-144-0-240-186-0-0-0-0-0-0-0-0-0 | | IKnowAFighter |神经纤维瘤病意识日/月| 5-404-282-59“[“文本”=>string(1)“5”}请参见。您要么没有以
o.GlobalChats
的形式发送数据,要么没有通过
请求发送数据。