crossplatform.ru

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


  Ответ в Залить jpg картинку
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Verus Дата 16.4.2009, 12:58
  Вот недавно заливал картинку на антикапчу. Все успешно заливается таким способом:
QHttpRequestHeader Network::GetFileHeader(const QString& fileName)
{
    QFile file(fileName);
    file.open(QFile::ReadOnly);
    QByteArray boundary = "-------------fjfhee78y34uhui";
    QHttpRequestHeader header("POST", "/in.php");
    _bytesToSend = "--"+boundary+"\r\n"+
    "Content-Disposition: form-data; name=\"method\"\r\n\r\npost\r\n"+
    "--"+boundary+"\r\nContent-Disposition: form-data; name=\"key\"\r\n\r\n"+_ackey.toUtf8()+"\r\n"+
    "--"+boundary+"\r\nContent-Disposition: form-data; name=\"file\"; filename=\""+fileName.toUtf8()+"\"\r\n"+
    "Content-Type: image/pjpeg\r\n\r\n"+file.readAll()+"\r\n--"+boundary+"--";

    header.setContentLength(_bytesToSend.size());
    header.setValue("Host", "ac-service.info");
    header.setValue("User-Agent", 
        "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8");
    header.setContentType("multipart/form-data; boundary="+boundary);
    setHost("ac-service.info", QHttp::ConnectionModeHttp);
    return header;
}

Одноклассники же упорно сопротивляются. Так же выяснил с помощью firebug'a что если через браузер заливать картинку то ответ от сервера тоже 400(Bad Request), но перед этим в заголовке в поле Location: указывается страница, которую браузер потом открывает GET'ом для добавления комента к фотке. Средствами Qt в заголовке такого пункта нет, т.е. получаю просто 400 и все тут.
ViGOur Дата 4.4.2009, 23:53
  Я думаю, что для начала стоит попробовать залить картинку на свой сервер, на котором поставить полный доступ на заливку, и когда уже это получится пробовать это сделать на чужой.
kwisp Дата 4.4.2009, 23:29
  Verus,
польщен предложением но есть чем заняться и без этого... это как я понимаю не пятиминутное дело если честно не предполагал что сервер вообще не твой:)
тут правда Qt не причем протокол все решает ....

можно просмотреть что и как посылается с помощью программ снифферов я пользуюсь ethereal хорошая вещь... посмотришь как картинку посылает браузер состряпаешь такой же запрос серверу должно сработать....
LE0N Дата 4.4.2009, 22:44
  Сомневаюсь я, что это скрипты одноклассников возвращают такой заголовок.
Скорее всего самому веб-серверу не нравится то, что ты передаёшь...
Читай про ХТТП заголовки спецуху...
ЗЫ. Возможно это какая-нибудь хитрожопая защита одноклассников от роботов...И бэд реквест выдаёт именно бизнес логика этой соц. сети...
Verus Дата 4.4.2009, 18:44
  Может я конечно криворукий, но просто я не могу понять что я делаю не так :( Попробуй загрузить картинку каким-нибудь способом(только с Qt) на одноклассники, если получится, поделись :)
kwisp Дата 4.4.2009, 17:28
  Verus,
опыта нет, но думаю засовывать картинку в QByteArray и отправлять на сервер там загружать картинку из того же QByteArray.
в чем конкретно проблема не понятно.
Verus Дата 4.4.2009, 14:53
  А может у кого-то есть опыт заливания картинок на сервер с помощью Qhttp? Показали бы, было бы здорово :)
Verus Дата 2.4.2009, 9:54
  Странное дело наблюдается - если нет этой строки
setHost(urlHost, QHttp::ConnectionModeHttp);


то в снифере видно POST запрос, если добавить ее, то нет и видно сразу ответ(400 Bad Request), хотя не совсем понятно почему так получается.

Заголовки сравнил в снифере, один в один и ничем не отличаются :)
ViGOur Дата 2.4.2009, 9:33
 
Цитата(Verus @ 2.4.2009, 9:44) *
Вполне хватает jsession, даже когда прога получает его, можно скопировать эту строку и в браузере откроется страница одноклассников без авторизации.
В тот же броузер или в другом, в котором "чистенько"? :)

Хм, попробовал и правда так...
Verus Дата 2.4.2009, 8:58
  Ясно :)
Может все таки есть у кого мысли по поводу проблемы? :)
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 22:12