0

所以我有这两个脚本可以相互通信以在线创建一个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";
?>
4

1 回答 1

2

您不能像以前那样在 Flash 中创建 xml。

var temp:XML = <teste></teste>;

因为在您的文件中没有像这样的对象。您需要做的是在实例化 XML 对象时提供一个字符串作为参数。

因此,您应该执行以下操作,

var temp:XML = new XML("<teste></teste>");

现在您的代码可以将 xml 发送到 php。

于 2012-09-10T12:21:13.420 回答