![](/img/trans.png)
[英]AS3 and mySQL or XML: Saving user votes on server from a flash movie
[英]Edit and Save XML in AS3 Flash
自从今天早上以来,我对此一直感到困难,所以我最终决定寻求您的帮助。 我想加载一个XML文件(本地)并对其进行编辑,然后将结果保存在同一文件中。 加载/读取不是问题,它可以正常工作,但是在as3中保存文件非常困难。
(nb:我有一个本地服务员,所以这不是问题)
到目前为止,这是我迄今为止最好的解决方法(在此处找到):
save.php:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("http://localhost/cs_texte.xml","wt");
fwrite($file, $xml);
fclose($file);
}
?>
myAs3script.as:
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
// Loading XML -> works fine
xmlLoader.load(new URLRequest("http://localhost/cs_texte.xml"));
//When loading complete
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
trace(xmlData); // Works fine
[.. Do some stuff on xml ..]
var xmlResponse:XML;
var xmlURLReq:URLRequest = new URLRequest("http://localhost/save.php");
xmlURLReq.data = xmlData;
xmlURLReq.contentType = "text/xml";
xmlURLReq.method = URLRequestMethod.POST;
var xmlSendLoad:URLLoader = new URLLoader();
xmlSendLoad.addEventListener(Event.COMPLETE, completeHandler);
xmlSendLoad.load(xmlURLReq);
function completeHandler(evt:Event) {
trace ('Save complete');
}
}
但它不起作用,即使我尝试将其清空,xml文件也不会改变。
知道为什么吗? (并且您知道如何在Flash输出控制台中获取php错误吗?如果有的话..)
谢谢您的帮助! (并且请放心,这最初不是我的项目。)
多亏了Andrey Popov,我才发现了问题,这只是一个绝对URL而不是相对URL的问题。因此,您需要像这样从PHP文件中提供一个相对地址:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("cs_texte.xml","wt");
fwrite($file, $xml);
fclose($file);
}
?>
仅此而已,但这确实让我很难受! 谢谢帮我弄清楚,希望对别人有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.