AS3:强制保存 Xml 文件
Posted
技术标签:
【中文标题】AS3:强制保存 Xml 文件【英文标题】:AS3: Force Save an Xml File 【发布时间】:2012-07-27 17:50:37 【问题描述】:我想知道是否有办法强制用户将 xml 文件保存在某个位置。 即他们无法选择保存文件的位置。 我希望它始终保存在与 swf 文件相同的位置。
提前感谢您的帮助。
【问题讨论】:
我实际上不记得了,但是“闪存”安全策略不允许这样有趣的事情。也许我错了。 【参考方案1】:不,你不能。
为此,您需要知道用户文件系统的有效路径。您不能只使用C:\mylocation\
,因为Flash Player 也可以在其他没有C:\mylocation\
的操作系统中运行。
如果您将 Flash 用作内部工具,而不是用于 Web,则您有其他选择,例如将数据存储在剪贴板中,然后运行后台应用程序,该应用程序将获取剪贴板数据并将其保存在特定路径中;或者干脆使用 AIR。
【讨论】:
【参考方案2】:如果它在线运行,您可以在编辑 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 );
【讨论】:
以上是关于AS3:强制保存 Xml 文件的主要内容,如果未能解决你的问题,请参考以下文章