使用PHP将图像从闪存保存到服务器

时间:2010-09-29 19:24:04

标签: php flex flash actionscript-3

我试图通过发送jpgstream将一些图像从Flash保存到Php,在php中捕获它并将其推送到文件中。不知道我在这里做错了什么。

我将所需的所有图像放入一个数组中:(历史就是我保存所有图像数据的地方)

for each($value in history)
            {

                var jpgSource:BitmapData = new BitmapData ($value.sourceImg.width, $value.sourceImg.height);
                jpgSource.draw($value.sourceImg);
                var encoder:JPEGEncoder = new JPEGEncoder(100);
                var jpgStream:ByteArray =  encoder.encode(jpgSource);
                var imgDetailArr:Array = new Array(jpgStream, $value.name);
                imgArr.push(imgDetailArr);



            }

然后我使用远程对象和amfphp发送给PHP:

rmObj.saveUserImages( imgArr);

在php方面,我这样做:

function saveUserImages( $imgArr)
    {
        foreach($imgArr as $value)
        {


            ob_start();
            /* output image as JPEG */
            $image = imagecreatefromjpeg($value[0]);     
            header('Content-type: image/jpeg');
            imagejpeg( $image );
            /* save output as file */
            ob_flush();
            file_put_contents( "images", ob_get_contents() );


        }
    }

但这似乎并没有成功。我一直在经历一堆不同的tutes和代码片段,所以也许我只是在路上遇到了一些困惑。我之前做过这个,但不记得这很困难。

2 个答案:

答案 0 :(得分:0)

最好从Flash调用JS并通过AJAX传递路径到文件。然后,使用PHP直接上传文件。 PHP支持从硬盘驱动器上传文件。

修改

第二个想法,尝试将ob_flush与后面的行一起切换。在保存之前,您似乎正在删除临时数据。

答案 1 :(得分:0)

我不是flash的专家,但这似乎正在做你想要的......想法?

http://henryjones.us/articles/using-the-as3-jpeg-encoder