繁体   English   中英

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

[英]Saving a file on server using JavaScript

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);
  }

 ?>

console.log输出 [{“ PlayerId”:237186​​,“ toPlayerId”:0:“ chatid”:16606292,“ added”:“ / Date(1451764948837)/”,“ addedText”:“ 20:02”,“ PlayerLink” :“ p = Kodabear | 237186​​ | T?| 78 | 1 | 0 | 0-144-0-240-186-0-0-0-0-0-0-0-0-0 | #IKnowAFighter |神经纤维瘤病防治日/ Month | 5-404-282-59“,” text“:”真实聊天的范例“}]

我创建了一个js,每次游戏中的聊天更新时,该js都会向我的服务器发送文件。 但是我在服务器端代码方面遇到问题,任何建议都会对您有很大帮助。 (PHP代码在这里建立

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

尝试var_dump($_POST['o.GlobalChats'])来查看您的数据是否正在到达服务器。

似乎您没有将文件正确写入系统。 请阅读手册中的示例( http://php.net/manual/pt_BR/function.fwrite.php

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

尝试这样的事情:

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

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

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

fwrite($handle, $data);

fclose($handle);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM