crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в загрузка картинки на сайт методом пост multipart/form-data
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ufna Дата 17.10.2010, 12:36
 
Цитата(eldar85 @ 17.10.2010, 0:39) *
и к стати отличный сайт у тебя и главное родственная душа, я тоже фрилансер)) freedom forever)))


пасиб ;)
eldar85 Дата 16.10.2010, 23:39
  и к стати отличный сайт у тебя и главное родственная душа, я тоже фрилансер)) freedom forever)))
eldar85 Дата 16.10.2010, 22:54
 
QNetworkRequest request;
    QEventLoop loop;
    
    
    QFile file("c:/8788.jpg");
    if(!file.open(QIODevice::ReadOnly)) {qDebug() << "error"; return 1;}
    
    
    request.setRawHeader("Host", "yoursait.com");
    request.setUrl(QUrl("http://yoursait.com/in.php"));
    request.setRawHeader("Content-Type", "multipart/form-data; boundary=---------------------------200242615429510");
    
    
    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--");
    
    qDebug() << array;
    QNetworkAccessManager* pManager = new QNetworkAccessManager();
    QNetworkReply *reply = pManager->post(request, array);
    QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
    loop.exec();
    qDebug() << reply->readAll();
    
    return 0;


вот в таком виде все работает отлично)) спасибо за помощь)
eldar85 Дата 16.10.2010, 22:16
  спасибо, сейчас попробую))
ufna Дата 16.10.2010, 21:57
  file кстати тоже не задаешь. Сделай как у меня - это проверенный вариант
ufna Дата 16.10.2010, 21:23
  ну ты key неверно задаешь

сделай как в моем примере, поставь key вместо моего __PARAM_NAME__, а его значение - вместо "__your PARAM_NAME data in TEXT__"
eldar85 Дата 16.10.2010, 20:40
  хмм, вроде все ясно но не выходит, мне нужно сформировать подобного вида отправляемый бинарник

    curl_formadd(&post, &last,   CURLFORM_COPYNAME, "method",   CURLFORM_COPYCONTENTS, "post", CURLFORM_END);  
    curl_formadd(&post, &last,   CURLFORM_COPYNAME, "key",   CURLFORM_COPYCONTENTS, ackey.c_str(), CURLFORM_END);  
    curl_formadd(&post, &last,   CURLFORM_COPYNAME, "file",   CURLFORM_FILE, img.c_str(), CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);


это отправка курлом, мне нужно сделать подобное методами Qt.
Сделал вот так

QByteArray array;
    array.append("-----------------------------200242615429510\r\n");
    array.append("content-disposition: ");
    array.append("method=post");
    array.append("\r\n");
    array.append("-----------------------------200242615429510\r\n");
    array.append("content-disposition: ");
    array.append("key=a1683bc4a2768f2c0jhkjhklliui15");
    array.append("\r\n");
    array.append("-----------------------------200242615429510\r\n");
    array.append("Content-Transfer-Encoding: binary\r\n");
    array.append("\r\n");
    array.append(file.readAll());
    array.append("\r\n");
    array.append("-----------------------------200242615429510--");

    qDebug() << array;
    QNetworkAccessManager* pManager = new QNetworkAccessManager();
    QNetworkReply *reply = pManager->post(request, array);
    QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
    loop.exec();
    qDebug() << reply->readAll();


но отправка получается неправельной.
ufna Дата 16.10.2010, 13:04
  В принципе, все очень просто - http://ufna.ru/2010/10/16/qt-post-multipart-form-data
kwisp Дата 16.10.2010, 11:06
 
Цитата(eldar85 @ 16.10.2010, 10:55) *
как получиться выложу код)

обязательно, лучше с подробными комментариями.
eldar85 Дата 16.10.2010, 9:55
  http://www.qtcentre.org/archive/index.php/t-25255.html
тут вроде китаец привел не плохой пример, буду разбираться, теперь хоть ясно в какую сторону копать, а то почти везде используется QHTTP а я хочу с помощью QNetworkAсcessManager все сделать)) как получиться выложу код)
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 22:41