0

AS3とPhp/Javaの知識がよくないので、この問題に行き詰まりました。

画像を保存するためにビットマップデータをPHPファイルに送信するAS3関数があります。この関数では、他の引数もいくつか追加しました。新しい引数を使用すると、必要な文字列値が得られます。

private function saveImageForFacebook(evt:MouseEvent)


 // Sends the Bitmap data to php    


{
        var bitmapData:BitmapData=new BitmapData(wheelCanvas.width, wheelCanvas.height);
        bitmapData.draw(wheelCanvas); 
        var jpgEncoder:JPGEncoder = new JPGEncoder(80);
        var byteArray:ByteArray = jpgEncoder.encode(bitmapData);
        var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
        var jpgURLRequest:URLRequest = new URLRequest ("http://www.someurl.com/flash-test/saveimg.php");
        jpgURLRequest.requestHeaders.push(header);
        jpgURLRequest.method = URLRequestMethod.POST;
        jpgURLRequest.data = byteArray;
        navigateToURL(jpgURLRequest, "_blank");


 // Creates the string value that I need to use in saveimg.php


        var suffixUrl:String = "";
        for(var i:int=0; i < customizedColorArr.length; i++)
        {
             if(customizedColorArr[i] != "")
             {
                 suffixUrl += "&" + customizedPartValueArr[i] + "=" + customizedColorArr[i];
             }
        }
        suffixUrl = wheelName + "&variant_name=" + variantName + suffixUrl;
        trace(suffixUrl);

    } 

どういうわけか、saveimg.phpファイルの「suffixUrl」値をトレースする必要がありますが、方法がわかりません。

これは私のphpファイルがどのように見えるかとsuffixUrlが行く必要がある場所です。

    <?php
    if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
    $uniqueStamp = date(U);
    //$filename = "temp_image.jpg";
    $filename = $uniqueStamp . ".jpg";
    $fp = fopen( $filename,"wb");
    $result = fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
    fclose( $fp );

    }
    ?>
    <meta property="og:image" content="http://www.someurl.com/flash-test/src_server/<?php echo $filename ; ?>" /> 
 <SCRIPT LANGUAGE="JavaScript">
     function redirect () {
     window.location.href = "http://www.facebook.com/sharer.php?u=http://www.someurl/flash-test/Main3D.html?"+suffixUrl, '_self';
}
 </SCRIPT>
   <BODY onload="redirect()">

私のjavascript関数に「suffixUrl」が表示されます。それが私がその価値を大切にしようとしているところです。

4

2 に答える 2

0

変数をJavascriptに送信したくありません。変数をPHPに送信したい。

サフィックス生成コード ブロックを Bitmap 送信部分の上に移動し、この行を変更します。

var jpgURLRequest:URLRequest = new URLRequest ("http://www.someurl.com/flash-test/saveimg.php?suffixUrl=" + suffixUrl);

次に、PHPで

window.location.href = "http://www.facebook.com/sharer.php?u=http://www.someurl/flash-test/Main3D.html?" + <?php echo $_GET['suffixUrl'] ?>, '_self';

これは機能しますが、セキュリティのために入力をサニタイズする必要もあります。

于 2012-06-21T12:01:23.707 に答える
0

「php ファイル」が Flash を埋め込んでいるものであると仮定すると、ExternalInterface を使用redirectして Flash から関数を呼び出すことができます。

閃光 :

ExternalInterface.call("redirect", suffixUrl);

注:インポートする必要がありますflash.external.ExternalInterface;

JavaScript :

function redirect (suffixUrl) {
     window.location.href = "http://www.facebook.com/sharer.php?u=http://www.someurl/flash-test/Main3D.html?" + suffixUrl;
}
于 2012-06-21T01:19:15.487 に答える