crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 15:16