Сохранение изображений с flash на сервер с использованием PHP - PullRequest
0 голосов
/ 29 сентября 2010

Я пытаюсь сохранить некоторые изображения из Flash в Php, отправив jpgstream, записав его в 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);



            }

И затем я отправляю это в PHP, используя удаленный объект и amfphp:

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() );


        }
    }

Но, похоже, это не тактрюк.Я прошёл через кучу разных бестселлеров и фрагментов кода, так что, может быть, я просто кое-что запутал по пути.Я делал это раньше, и не помню, чтобы это было так сложно.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2010

Я не специалист по флеш-памяти, но, похоже, это делает то, что вы ищете ... мысли?

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

0 голосов
/ 29 сентября 2010

Возможно, вам лучше вызвать JS из Flash и передать путь к файлу через AJAX. Затем используйте PHP для прямой загрузки файлов. PHP поддерживает загрузку файлов с жесткого диска.

Edit:

Подумав, попробуйте переключить ob_flush на строку после нее. Похоже, вы удаляете свои временные данные перед сохранением.

...