【问题标题】:POST vars from flash to php file_put_contents filenamePOST vars 从 flash 到 php file_put_contents 文件名
【发布时间】:2013-05-04 18:52:01
【问题描述】:

我正在记录网络摄像头数据并发送到一个 .php 文件,以便稍后在 Flash 中存储和查看。该元素工作正常,但每次执行此操作时,我都需要根据 Flash 中设置的变量为文件提供唯一 ID。

这是我用来将 flv 作为 byteArray 发布的代码:

     var url_ref:URLRequest = new URLRequest("save_vid.php");
     url_ref.contentType = 'application/octet-stream';
     url_ref.data = _baFlvEncoder.byteArray;//url_data;
     url_ref.method = URLRequestMethod.POST;
     urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
     try {
             urlLoader.load( url_ref );
         } catch (e:Error) {
             trace(e);
         }

我需要附加到 PHP 文件中设置的文件名的变量:

    var currentVideo:String;
    var currentName:String;

到目前为止我的 PHP 文件:

    <?php
    echo 'Data:<pre>';
    print_r($_POST);
    echo '</pre>';
    file_put_contents("test.flv",$GLOBALS[ 'HTTP_RAW_POST_DATA' ]);

    $sCurrentVideo = $_POST['currentVIdeo'];

    $sCurrentName = $_POST['currentName'];
    ?>++

这里有人能引导我走向正确的方向吗?提前致谢。

【问题讨论】:

    标签: php string actionscript-3 flash variables


    【解决方案1】:

    您将需要使用“URLVariables”类。

    Here is a helpful tutorial explaining it's usage.

    创建它的一个实例,设置值以匹配您要设置的两个变量,同时添加原始视频数据。

    // Define the variables to post    
    var urlVars:URLVariables = new URLVariables(); 
    urlVars.currentVideo = currentVideo;
    urlVars.currentName = currentName;
    urlVars.videoData = _baFlvEncoder.byteArray;
    

    然后在urlReq中,设置数据等于urlVars实例:

    url_ref.data = urlVars;
    

    然后您将能够在 PHP 中访问 $_POST 变量中的这些值。

    file_put_contents("test.flv",$_POST[ 'videoData' ]);

    【讨论】:

    • 与其将其添加到文件名字符串中,不如将其与字节数组一起保存 var 数据并破坏 flv。有没有办法将闪存中的变量附加到 php 中的 flv 名称?在闪存中,我使用的是fileRef.save(_baFlvEncoder.byteArray, "perform"+id+"_iGame.flv");
    • 我不确定我是否理解...你是说在使用 URLVariables 时,它会破坏 flv 数据?
    • 我是说,php 正在使用 urlVars 中的所有数据集来编译 flv。它使用 currentVideo 和 currentName var 中的数据集以及 byeArray 数据来编译 flv。损坏文件。我需要做的是不使用“test.flv”作为文件名,我需要使用 currentVideo 和 currentName vars 中的数据来命名文件。你知道我会怎么做这种事吗?
    • 类似:file_put_contents($_POST[ 'videoData' ] + "test.flv");
    • file_put_contents 采用字符串作为第一个参数的标题(即 $_POST['currentName'])和文件本身的数据作为第二个参数。它应该适用于file_put_contents($_POST['currentName'], $_POST['videoData']);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    相关资源
    最近更新 更多