[英]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代码在这里建立
尝试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.