QNetworkAccessManager: загрузить исполняемый файл на сервер apache - PullRequest
0 голосов
/ 12 мая 2011

Я пытаюсь загрузить исполняемый файл на сервер, используя этот код:

    QFileDialog dialog(this);
    dialog.setDirectory(QDir::home());
    QStringList fileNames = QFileDialog::getOpenFileNames(this,tr("Open File"));
    if(fileNames.count() == 1)
    {
        QFileInfo fi(fileNames.at(0));

    }

путь к файлу - это содержимое переменной fileNames, и я извлекаю имя файла из пути с помощью fileNames.at (0). Как я могу загрузить файл .. Я пытаюсь с этим кодом, но файл не загружен:

 QByteArray postData;

 postData.append(path);

 QString url ="http://localhost/upload.php";
 //type header
 req.setHeader(QNetworkRequest::ContentTypeHeader,"multipart/form-data");
 req.setUrl(url);

 manager=new QNetworkAccessManager(this);
 reply=manager->post(req,postData);

... Любая помощь будет оценена ..

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Я прочитал вышеупомянутую ветку, и я пытаюсь использовать этот фрагмент кода, но проблема остается ... загрузка завершается неудачно:

 file=new QFile(path);
 file->open(QIODevice::ReadOnly);
 postData.append(file->readAll());

 QString url ="http://localhost/uploadFile.php";
 //type header
 req.setHeader(QNetworkRequest::ContentTypeHeader,"application/octet-stream");

 req.setUrl(url);

 manager=new QNetworkAccessManager(this);


 reply=manager->post(req,postData);
 connect(manager,SIGNAL(finished(QNetworkReply*)),this,     SLOT(replyFinished(QNetworkReply*)));

}

 //////php file///////

// The software package name
 $fileName = trim($_POST['fileName']);

// Make directory
mkdir("files/$fileName");

// Upload file
move_uploaded_file ($_FILES['upload'] ['temp_name'],  "files/$fileName/{$_FILES['uploadFile'] ['name']}")
0 голосов
/ 12 мая 2011

Чтение Загрузка файла с использованием метода post () из QNetworkAccessManager

По сути, вам нужно создать объект данных для размещения в куче, а не в стеке! Попробуйте создать свой QByteArray в куче и следуйте ответу, чтобы он исчез, когда запрос завершен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...