【问题标题】:Returning a value from php to swf将值从 php 返回到 swf
【发布时间】:2011-09-27 23:40:43
【问题描述】:

我正在尝试将在 swf(在本地计算机上)上演的电影剪辑传输到远程服务器。下面是与之相关的部分动作脚本代码;

function createJPG(mc:MovieClip, n:Number, fileName:String) {

trace("sdf:");
var jpgSource:BitmapData = new BitmapData(mc.width,mc.height);
jpgSource.draw(mc);
var jpgEncoder:JPGEncoder = new JPGEncoder(n);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
trace("jpegStream::"+jpgStream);
var header:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream");

var jpgURLRequest:URLRequest = new URLRequest("http://example.com/arts/savefile.php?name=" + fileName + ".jpg");

jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;


var loader:URLLoader = new URLLoader();
trace("navigatetoURL:");

sendToURL(jpgURLRequest);    }

远程服务器中保存文件的php脚本是;

<?php
set_time_limit(0);

if( isset($GLOBALS['HTTP_RAW_POST_DATA']) ) {

    $imageFile='images/'.$_GET['name'];
    $fp = fopen($imageFile, 'w+');

    // get bytearray
    fwrite($fp, $GLOBALS['HTTP_RAW_POST_DATA']);
    fclose($fp);

    if( file_exists($imageFile) ) {
        echo 'File saved.';
    }
    else {
        echo 'Error: Problem writing the file.';
    }
} 
else {
    echo 'Error: Not data available to write the file.';
}
?>

我想在上传完成后关闭 swf。我想知道如何从 php 脚本返回一个值(可能是我打算用来表示文件传输完成的数字)到 swf以及如何在 swf 中接收该值?

非常感谢任何帮助。 谢谢!。

【问题讨论】:

    标签: php actionscript file-transfer


    【解决方案1】:

    我现在总是使用 AMFPHP http://sourceforge.net/projects/amfphp/ 。 Gotoandlearn 有一个不错的免费教程http://www.gotoandlearn.com/

    【讨论】:

      【解决方案2】:

      URLLoader 支持Event.COMPLETE 事件,当您的远程操作返回数据并且该数据已存储在URLRequest.data 中时会触发该事件。

      在 PHP 中,您回显的数据是 Flash 将接收的数据,因此您可能需要考虑比单个字符串更复杂的数据类型,也许使用 json 并传递一个如下所示的对象:

      {result:1,message:"some message"};
      

      这为您提供了一个简单的 1/0 结果值,以便于检查,并为用户输出一个字符串消息。您可以在 PHP 中通过创建关联数组并使用 JSON.encode() 对其进行编码来实现这一点。

      然后在 Flash 端,您将向 URLLoader 添加一个事件侦听器以检测 COMPLETE 事件,并使用 Adob​​e 核心库中的 JSON 类将您的 PHP 输出解码为可用对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-04
        • 2010-10-15
        • 2021-11-20
        • 1970-01-01
        • 2012-12-12
        • 2012-04-07
        • 2019-05-16
        • 1970-01-01
        相关资源
        最近更新 更多