【问题标题】:AS3: Force Save an Xml FileAS3:强制保存 Xml 文件
【发布时间】:2012-07-27 17:50:37
【问题描述】:

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


提前感谢您的帮助。

【问题讨论】:

  • 我实际上不记得了,但是“闪存”安全策略不允许这样有趣的事情。也许我错了。

标签: xml actionscript-3 save flash


【解决方案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 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2011-09-22
      • 1970-01-01
      相关资源
      最近更新 更多