Почему когда я BitmapData загоняю в PNGEncoder а затем отправляю на сервер и сохраняю в файл, я этот файл не могу открыть так как он поврежден или слишком велик.
Вот код отправки из флеша:

Код AS3:
var data_bmp:BitmapData = new BitmapData(container.width,container.height);
data_bmp.draw(container);
names.text = "Begin Encode";
var png_image_data:ByteArray = PNGEncoder.encode(data_bmp);
var ld:URLLoader = new URLLoader();
var url_req:URLRequest = new URLRequest(host);
url_req.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
var base64EncodedImg:String = Base64.encode(String(png_image_data));
variables.file = base64EncodedImg;
url_req.data = variables;
ld.load(url_req);
а вот серверная часть:

PHP код:
<?php
$imageContent = base64_decode($_POST['file']);
file_put_contents('image.png', $imageContent);
?>
все вроде нормально сохраняет, но почему файл нельзя открыть? С чем это связанно?
Png файл я открывал блокнотом структура вроде нормальная .
Да и еще один момент почему длина переменной png_image_data до кодировки base64 равна 136614, а после раскадировки на сервере равна 194367 wtf? откуда лишние байты?