Flex отправка снимка без использования base64Encode
-
20-09-2019 - |
Вопрос
var is:ImageSnapshot = myImagesnapshot;
var str:String = ImageSnapshot.encodeImageAsBase64(is);
На данный момент я отправляю свои данные в формате JPEG на сервер с помощью приведенного выше кода.
Проблема в том, что это почти удваивает размер данных.
Есть ли способ отправить данные изображения напрямую, без использования какой-либо кодировки.
Решение 2
Вот пример отправки данных изображения без использования Base64:
var myEncoder:JPGEncoder = new JPGEncoder(100);
var byteArray:ByteArray = myEncoder.encode(bitmapData);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var url:String = "../../default.php";
var saveJPG:URLRequest = new URLRequest(url);
saveJPG.requestHeaders.push(header);
saveJPG.method = URLRequestMethod.POST;
saveJPG.data = byteArray;
На стороне PHP мне нужно получить доступ:
$globalS["HTTP_raw_post_data"]
Другие советы
base64 увеличивает размер на треть, поэтому, если у вас действительно около 100% накладных расходов, у вас проблема в другом месте.
не особо внимательно изучал исходники, но судя по ссылке, кажется, вы могли бы получить двоичные данные напрямую.
просто засунь это в URL-запрос и отправить его по ПОЧТА.
Вы можете сохранить снимок в формате jpg или png.
Не связан с StackOverflow