|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Отправляется только заголовок картинки
Странные дела творятся. Не могу отправить ByteArray снятого скриншота.
AS3 отправка: var vars:URLVariables = new URLVariables; vars.id = String(new Date().getTime()); vars.imageFile = by.blooddy.crypto.image.JPEGEncoder.encode(bitmapdata, 10); var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; var request:URLRequest = new URLRequest(API_URL); request.requestHeaders = [new URLRequestHeader("Content-type", "multipart/form-data")]; request.data = vars; request.method = URLRequestMethod.POST; loader.load(request); От картинки передается только jpg-шный хедер ÿØÿà. Если байтэррей перекодировать в base64, то тело POSTа выглядит правильно (заполненный base64 стройкой). Почему байтэррей режется в посте??? Последний раз редактировалось Vlad84; 19.05.2015 в 12:47. |
|
|||||
Тело запроса нужно сформировать самостоятельно, в соответствий с протоколом:
https://ru.wikipedia.org/wiki/HTTP (Так запрос гарантированно выполнится как надо) private static const BOUNDARY:String = "----------Ij5ae0ae0KM7GI3KM7"; private static const HEADER_MULTIPART_BONDARY:URLRequestHeader = new URLRequestHeader("Content-type", "multipart/form-data; boundary=" + BOUNDARY); const png:ByteArray = PNGEncoder.encode(_imageSaveCall.image); const postData:ByteArray = new ByteArray; postData.writeUTFBytes("--" + BOUNDARY + '\r\nContent-Disposition: form-data; name="file1"; filename="screenshot.png"\r\nContent-Type: image/png\r\n\r\n'); postData.writeBytes(png); postData.writeUTFBytes("\r\n--" + BOUNDARY + '--\r\n');
__________________
Дети не должны знать о своих родителях |
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Он ровно этот текст и добавляет в запрос.
var_dump(): |
|
|||||
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Странность номер 2. Значения переменных в post-е нельзя забрать через
Все данные приходят в виде raw даты, которую надо сначала распарсить(a=b$c=d...), а потом только вынуть. Получается, что нельзя просто запостить байтэррей через api какого-нибудь сервиса?
Добавлено через 4 минуты Rzer, попробовал, не работает. |
|
|||||
Покажи, как ты отправляешь и получаешь картинку
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Отправка:
var vars:URLVariables = new URLVariables; vars.id = String(new Date().getTime()); vars.imageFile = by.blooddy.crypto.image.JPEGEncoder.encode(bitmapdata, 10); var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; var request:URLRequest = new URLRequest(API_URL); request.requestHeaders = [new URLRequestHeader("Content-type", "multipart/form-data")]; request.data = vars; request.method = URLRequestMethod.POST; loader.load(request); Результат var_dump: Такая фигня только с бинарными данными. Если байтэррей сконвертить в base64, то все передается как надо |
|
|||||
Ох, URLVariables не поддерживает картинки - нельзя просто сунуть туда картинку. В request.data нужно передавать ByteArray. А вообще я скинул тебе отличный класс, просто нужно было прочитать комментарий:
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Jul 2012
Сообщений: 148
|
Вот блин! А я все гадал, как флэш провернет байты в строку и отправит их Сразу не дошло, зачем URLUploader упаковывает переменные в байты и сливает все в один массив байтов.
Rzer, а можешь в комментарии к шикарному URLUploader добавить описание передаваемых параметров и как на php эти данные принимать? Последний раз редактировалось Vlad84; 19.05.2015 в 19:17. |
|
|||||
https://php.net/manual/ru/features.f...ost-method.php
Соответственно имя поля у тебя imageFile. Название файла $_FILES['imageFile']['name'] = screen.jpg Забирать переменные нужно из POST.
__________________
if (love is true) break my.heart; Последний раз редактировалось Rzer; 19.05.2015 в 19:27. |
Часовой пояс GMT +4, время: 17:48. |
|
« Предыдущая тема | Следующая тема » |
|
|