Russian Qt Forum

Qt => Работа с сетью => Тема начата: edwardoid от Январь 01, 2009, 23:10



Название: Загрузка файла на сервер
Отправлено: edwardoid от Январь 01, 2009, 23:10
Как загрузить файл на сервер, чтобы загрузив файл на сервак там запускался бы php файл, который далее работал бы с ним?
Сколько не пробовал через QHttp нифига не получилось. ЧИтал похожую тему на форуме, пробовал использовать код с форума - не помогло. Не могли бы вы мне объяснить?


Название: Re: Загрузка файла на сервер
Отправлено: merke от Январь 30, 2010, 09:51
Здравствуйте!
Тут решение может быть следующее, опишу вкратце алгоритм аплода файлов на сервер.
Для этого потребуется специально написанный пыхпых скрипт, который будет блоками формировать передаваемый файл. Программа клиент будет коннектится к серверу и отправлять файл по кускам в заголовке запроса, пхп скрипт будет принимать и обрабатывать эти заголовки, формируя файл, до того пока не получит сигнатуру конца файла. Общение клиента с пхп скриптом организуется по средством передачи заголовков.

Вот накидал простой пример, реализуемый через QHttp

QString hed = QString("//какой то скрипт");
QString hl = QString("ACT=START");//Зарезервированная команда передаваемая скрипту, например сигнатура начала передачи
QByteArray ba("ACT=START");
QHttpRequestHeader header = QHttpRequestHeader("POST", hed,1,1);
header.setValue("Accept", "*/*");
header.setValue("Content-Type", "application/x-www-form-urlencoded");
 header.setValue("Host", "www.какой то сайт");
header.setValue("Content-Length", QString(ba.length()));
header.setValue("Accept-Charset", "cp-1251");
header.setValue("Connection", "Keep-Alive");
http->setHost("www.какой то сайт");
http->request(header,ba);