使用JavaScript在服务器上保存文件
Js代码使用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
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的形式发送数据,要么没有通过请求发送数据。