0

したがって、相互に通信してxmlファイルをオンラインで作成するこれら2つのスクリプトがあります。私が今持っている方法では、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

あなたがしたようにフラッシュでxmlを作成することはできません。

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

ファイルのようなオブジェクトがないためです。XML オブジェクトをインスタンス化するときに、パラメータとして文字列を指定する必要があります。

したがって、次のようなことを行う必要があります。

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

これで、コードから xml を php に送信できます。

于 2012-09-10T12:21:13.420 に答える