Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Заливка изображения на хостинг при помощи QNetworkAccessManager

Автор: RazrFalcon 21.5.2011, 21:09

Нашел много похожих тем. К примеру http://www.forum.crossplatform.ru/index.php?s=&showtopic=5774&view=findpost&p=41363.
Да и во многих других используется это:

QByteArray array;
Ну и потом его заполнение.
Что это такое? Я не понимаю как свой создать, да и нужно ли. Что то совсем не понятно.
Можно какую то литературу/ссылки как об этом.
Нужно просто залить изображение на хостинг. Вроде ничего сложного =)

Автор: ufna 21.5.2011, 22:43

А пошагово посмотреть пример в той же теме? Я просто не понял сути вопроса. байт эррей - это массив байт.

Автор: RazrFalcon 22.5.2011, 0:18

Я не пойму из чего он формируется.
Или он всегда одинаковый?

Я не пойму что это такое:

Раскрывающийся текст
QByteArray array;
    array.append("-----------------------------200242615429510\r\n");
    array.append("Content-disposition: ");
    array.append("form-data; name=\"method\"\r\n");
    array.append("\r\n");
    array.append("post");
    array.append("\r\n");
    array.append("-----------------------------200242615429510\r\n");
    array.append("Content-disposition: ");
    array.append("form-data; name=\"key\"\r\n");
    array.append("\r\n");
    array.append("a1683bc4jhkjhkhkgutiuftsdrsr62dkiu");
    array.append("\r\n");
    array.append("-----------------------------200242615429510\r\n");
    array.append("-----------------------------200242615429510\r\n");
    array.append("Content-disposition: ");
    array.append("form-data; name=\"file\"; filename=\"img.jpg\"\r\n");
              array.append("Content-Type: image/jpeg");
    array.append("\r\n");
    array.append("\r\n");
    array.append(file.readAll());
    array.append("\r\n");
    array.append("-----------------------------200242615429510--");

Автор: Алексей1153 22.5.2011, 10:04

RazrFalcon,

array.append("post");

выражение вида "xxx" - возвращает указатель const char* на статический массив, который содержит байты с кодами литер между кавычками, плюс завершающий ноль. То есть тут будет {'x','x','x','\0'}

вот этот самый указатель передаётся в одну из перегрузок QByteArray::append , и данный массив копируется, добавляясь к уже имеющимся данным (нуль-терминатор не копируется скорее всего)

Автор: RazrFalcon 22.5.2011, 10:26

Ничего не понял... <_<
Вернемся к заливке изображения.
К примеру здесь http://ufna.ru/2010/10/16/qt-post-multipart-form-data, другой Array. Как его создать? Откуда брать эти значения?

Автор: ufna 22.5.2011, 10:29

Просмотри построчно. Посмотри протокол POST запроса.

Автор: RazrFalcon 22.5.2011, 10:31

Ну с __PARAM_NAME__ __FILE_NAME__ вроде ясно. А остальное?
Где можно посмотреть: "протокол POST запроса"?
PS: я в этом 0, только вчера начал разбираться...

Автор: ufna 22.5.2011, 10:37

Для начала хотелось бы задать вопрос - а по какому протоколу ты собираешься заливать изображение на хостинг? :)

Автор: RazrFalcon 22.5.2011, 10:46

Не понял? :)
А какие есть..?
К примеру на радикал нужно залить, или fastpic. Без разницы. Или есть разница?

Автор: ufna 27.5.2011, 1:04

Ну в прямом смысле :) Вначале нужно определиться, что значит "залить изображение" в принципе. Как радикал или фастпик принимают эти изображения? Что происходит в браузере?

Автор: PAFOS 1.7.2011, 16:51

Открой браузер (гугль хром например) и включи режим разработчика и режим мониторнга сети.
и смотри, смотри как все работает.)
Браузер прям по полочкам тебе разложит что отправил и что принял.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)