Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Всем добрый день. Столкнулся с такой проблемой. Ну


Автор: chiffa 7.7.2012, 12:01
Всем добрый день. Столкнулся с такой проблемой. Нужно считать содержимое файла картинки, отправить на сервер и там сохранить в файл. делаю так:


Код

import mx.graphics.ImageSnapshot;
            import mx.graphics.codec.JPEGEncoder;
 
                private var imageSnapshot:ImageSnapshot
                private function inLargeImage():void
                {
                    var jPEGEncoder:JPEGEncoder = new JPEGEncoder(90);
                    imageSnapshot = ImageSnapshot.captureImage(load_img,500, jPEGEncoder,true);
 
 
                    byteArrayToBitmapData(imageSnapshot.data);
                    }
 
                private var loader : Loader = new Loader();
                private function byteArrayToBitmapData(byteArray : ByteArray):void
                {
                    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, getBitmapData);
                    loader.loadBytes(byteArray);
                    }
                private var bitmapData:BitmapData
                private function getBitmapData(e:Event):void {
                    var content:* = loader.content;
                    bitmapData = new BitmapData(content.width,content.height,true,0x00000000);
 
                    var matrix:Matrix = new Matrix();
                    bitmapData.draw(content, matrix,null,null,null,true);
                    targetImage.source = new Bitmap( bitmapData );
 
                    }
 
                private function saveInLargeImage() : void
                {
                    if(bitmapData == null)
                        {
 
                            return;
                            }
 
                    var encoder:JPEGEncoder = new JPEGEncoder(90);
                    var byteArray:ByteArray = encoder.encode(bitmapData);
                    var fr : FileReference= new FileReference();
 
 
 
 
 
                    base64Eec = new Base64Encoder();
 
                    base64Eec.encode(String(byteArray));
                    var encodedCredentials:String = base64Eec.toString();
 
                    var loader:URLLoader = new URLLoader();
 
                    var request:URLRequest=new URLRequest('http://******/wrt.php?rnd=' + Math.random());
                    request.method=URLRequestMethod.POST;
 
                    var vars:URLVariables = new URLVariables();
                    vars['test']=encodedCredentials;
 
 
 
                    request.data=vars;
                    loader.addEventListener(Event.COMPLETE, onComplete);
                    loader.load(request);
 
                    function onComplete(event:Event):void {
                        trace (loader.data);
 
                    }
 
 
 
 
                    }



и на стороне сервера:

Код

$fp = fopen("log/upl.jpg", "a+");
 $test = fwrite($fp,  base64_decode($txt_in));
 if ($test) echo '';
 else echo 'error';
 fclose($fp); 


Локальная картинка весит 859 кб, а на стороне сервера, после сохранения, почему то только 205 кб, соответственно не открывается...

Кто знает, подскажите: что делаю не так? Почему файл не передается полный объемом?...

Заранее спасибо!

Автор: NAGGANO 14.12.2012, 17:56
Попробуй так сделать: loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete), а не loader.addEventListener(Event.COMPLETE, onComplete);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)