Здравствуйте. Впервые работаю с сетью, не могу понять, что делаю не так:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
QFile* file = new QFile("d:\\somefile.txt");
if(!file->exists())
{
qDebug()<<"not found file";
exit(-1);
}
if( file->open(QIODevice::ReadOnly))
{
qDebug()<<"file: "<<file;
QUrl url("ftp://w05.hosterby.com/path/somefile.txt");
url.setUserName("name");
url.setPassword("pass");
reply =manager->put(QNetworkRequest(url), file);
connect(reply, SIGNAL(uploadProgress(qint64,qint64)), this,
SLOT(uploadProgress()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this,
SLOT(error()));
connect(reply, SIGNAL(finished()), this, SLOT(finished()));
}
else
{
qDebug()<<"error reading file";
}
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::finished()
{
qDebug()<<reply->readAll();
qDebug()<<reply->errorString();
}
void MainWindow::error()
{
qDebug()<<"error";
qDebug()<<reply->errorString();
}
void MainWindow::uploadProgress()
{
qDebug()<<"upload in progress";
}
При загрузке выдается следующее:
file: QFile(0x122cfb78)
QIODevice::read: device not open
error
"Error while uploading
http://ftp://user:pass@w05.hosterby.com/path/somefile.txt: Uploading file failed:
Access is denied. "
upload in progress
""
"Error while uploading
http://ftp://user:pass@w05.hosterby.com/path/somefile.txt: Uploading file failed:
Access is denied. "
С-но, смущает надпись QIODevice::read: device not open, т.к. файл точно существует. Второй вопрос с правами - пароль и логин точно правильные, т.к. раньше выдавалась ошибка авторизации. Если я что-то делаю не так, может кто-нибудь подскажет решение? Нужен просто скрипт, который закачает один файл на ftp-сервер. Буду очень благодарен за помощь.