AS3:强制保存Xml文件

时间:2012-07-27 17:50:37

标签: xml actionscript-3 save flash

我想知道是否有办法强制用户在某个位置保存xml文件。 即他们无法选择保存文件的位置。 我希望它始终保存在与swf文件相同的位置。


提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果它在线运行,您可以在编辑xml后将其转换为字符串。可以使用POST或GET请求将此字符串发送到php或其他服务器端语言。

因为swf运行客户端,所以无法访问服务器上的文件。像php这样的服务器端语言可以访问文件并写入文件。

在as3上将xml字符串发送到php脚本。 (查看AS3 URL string -> URLRequest

// url variables all which will appear after ? sign
var url = "www.example.nl/phpfilelocation.php";
var urlVariables : URLVariables = new URLVariables ();
urlVariables.xmldata = myXml.toString();

var request : URLRequest = new URLRequest  ( url );
request.data = urlVariables;
request.method = URLRequestMethod.POST;

var loader : URLLoader = new URLLoader ();
loader.addEventListener( Event.COMPLETE, handleLoaderComplete )
loader.load ( request );

在php方面,您可以使用此代码(警告这是一个示例并且不安全,因为现在每个人都可以使用url编写myFile.xml并提供名为xmldata的帖子数据。

$file = "myFile.xml";
$fileHandle = fopen($file, 'w');
fwrite($fileHandle , $_POST['xmldata']);
fclose($fileHandle );

答案 1 :(得分:0)

不,你不能。

为此,您需要知道用户的文件系统的有效路径。您不能只使用C:\mylocation\,因为 Flash Player 也会在其他操作系统中运行,而这些操作系统没有C:\mylocation\

如果您使用Flash作为内部工具而不是Web,则可以使用其他方法,例如将数据存储在剪贴板中,然后运行后台应用程序,该应用程序将获取该剪贴板数据并将其保存在特定路径中;或者只是使用 AIR