所以我有两个相互通信的脚本在线创建一个xml文件。我现在拥有它的方式,AS3 swf将一些变量发送到php脚本来编写。我得到了创建部分,但由于某种原因,php不会写一个xml文件。我尝试将变量更改为一个简单的“foobar”字符串,它的工作原理。但如果我做了:
var temp:XML = new XML(<test></test>);
它不会写它。那么怎么了,这是正常的吗?
AS3
function SaveXml(inputxml:XML){
var temp:XML = <teste></teste>;
var variables:URLVariables = new URLVariables();
variables.xmlfile = temp;
variables.folder = TestProperties.Username;
var request:URLRequest = new URLRequest("savexml.php");
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
try{
loader.load(request);
}
catch (error:Error) {
trace("Unable to load URL");
}
loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(e:Event)
{
//something when complete;
}
}
PHP
<?php
date_default_timezone_set('GMT');
$xmlfile = $_POST["xmlfile"];
$folder = $_POST["folder"];
$filename = date('ymdhis').".xml";
if(! file_exists("./user/".$folder."/")){
mkdir("./user/".$folder."/", 0777);
}
$handle = fopen("user/".$folder."/".$filename, 'w+');
fwrite($handle, $xmlfile );
fclose($handle);
echo "result=success";
?>
答案 0 :(得分:2)
您无法像在Flash中一样创建xml。
var temp:XML = <teste></teste>;
因为文件中没有对象。您需要做的是在实例化XML对象时提供一个字符串作为参数。
所以,你应该做类似下面的事情,
var temp:XML = new XML("<teste></teste>");
现在您的代码可以将xml发送到php。