2012-12-06 2 views
1

Я пытаюсь выяснить, как мое приложение для браузера Qt может загрузить документ Word из нашего веб-приложения. Веб-приложение написано в ExtJS, когда (в браузере, таком как Chrome) пользователь нажимает кнопку «Загрузить отчет», прослушиватель событий javascript обнаруживает это нажатие и открывает фреймворк 0px0px и загрузку файла. Я не уверен, как реплицировать эту функцию браузера в Qt?Загрузка файла с Qt?

Когда я нажимаю на ссылку, я получаю сетевой ответ "Operation canceled" 5?

Какой класс/метод лучше всего будет извлекать из этих файлов?

enter image description here

+0

Просто выстрел в темноте: вы проверили значение в HTTP: // кварты -project.org/doc/qt-4.8/qwebsettings.html#WebAttribute-enum? В частности, что-то вроде JavascriptCanOpenWindows? –

+0

Спасибо за подсказку, я включил его сейчас, но все еще не действует, операция прерывается, когда я нажимаю ссылку «Загрузить отчет». Я думаю, что это работа для NetworkAccessManager, но не уверен, как ее реализовать? – Kal

ответ

4

скачать файл, вам необходимо: а QNetworkAccessManager в этом случае HTTP. a QFile в этом случае файл. QNetworkReply в этом случае ответ подключить ответ с прорезью, который записывает байты, полученные через QNetworkAccessManager в этом случае слот называется readingReadyBytes()

так я создать запрос и подключения на мой слот:

const QNetworkRequest& request = QNetworkRequest(url); 
reply = http->get(request); 
QObject::connect(reply, SIGNAL(readyRead()), this, 
     SLOT(readingReadyBytes())); 

тогда я создаю мой слот:

void yourClass::readingReadyBytes() { 
    file->write(reply->read(reply->bytesAvailable())); 
} 

, наконец, вам необходимо сохранить и закрыть файл. Tipically делается, когда QNetworkAccessManager излучать закончил сигнала .. это то, что я помню, и я думаю, что это все ..

+2

Спасибо @riskio :) – Kal

 Смежные вопросы

  • Нет связанных вопросов^_^