У меня из приложения AS3 AIR, чтобы отправить изображение, помимо остальных параметров POST, в PHP-скрипт, который сделает все остальное. Я хочу как-то преобразовать массив байтов с изображением в строку и закодировать его с base64. Я был успешным, но данные изображения ошибочны.Как отправить массив байтов с изображением с AS3 на PHP?
Вот код, который я использовал, чтобы преобразовать его:
...
//BA1 is Byte Array with an image in it
var data:String = BA1.toString();
OutSql.push({t: "b1", v: Base64.encode(data)});
...
Все работает отлично, эти данные отправляются на сервер, декодируются и сохраняются в виде изображения, но изображение не так. Так или иначе, это около 40 кб, а когда я сохраняю его в приложении Air, это 22 кб. Есть идеи?
p.s. Я знаю, что я могу сохранить его локально и загрузить его, но мне действительно нужно это сделать. Кроме того, BA1.readUTF() генерирует ошибку, поэтому не вариант.
Добавление:
На стороне сервера я попытался utf8_decode строку перед записью в файл, и каким-то образом я получил изображение, которое правильные размеры, но ... это изображение не то, что я хотел быть, это похоже на каракули ...
делает 'BA1' содержат данные jpeg или png или просто raw bitmapData (используется 'getPixels();' для байтов)? Если его уже jpg/png использует «Base64.encode (BA1)», тогда сам B64 даст вам закодированную строку из байтов. Во всяком случае, ваш размер составляет 40kb (от 22kb), потому что вы использовали 'toString'. Рассмотрим два байта ** 0xFF ** и ** 0xD8 ** (общий размер 2) теперь как строка ** FFD8 **, которая является общим размером 4. Преобразование удваивает размер. Если возможно, просто выполните «trace» («bytes are:» + BA1), «тогда покажите мне здесь первые 8 букв байтов BA1. Легче оценить формат таким образом ... –
BA1 содержит данные jpeg. Однако при попытке кодирования BA1 генерируется ошибка, из-за чего может быть закодирована только строка, а не байтовый массив. –
Вот ответ для трассы: 'байты: ÿØÿàJFIFÿÛ' , который выглядит как хороший заголовок jpeg. Но остальные данные просто перепутаны. Изображение siye верно, кстати. –