Russian Qt Forum
Май 14, 2024, 12:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: простейший скрипт закачки файла по FTP, подскажите что делаю не так  (Прочитано 2725 раз)
qwyllum
Гость
« : Декабрь 22, 2014, 10:12 »

Здравствуйте. Впервые работаю с сетью, не могу понять, что делаю не так:

Код:


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-сервер. Буду очень благодарен за помощь.
« Последнее редактирование: Декабрь 22, 2014, 10:17 от qwyllum » Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Декабрь 22, 2014, 10:24 »

установка порта не поможет?
Код:
url.setPort(21);
Записан
qwyllum
Гость
« Ответ #2 : Декабрь 22, 2014, 10:33 »

установка порта не поможет?


Спасибо за ответ! К сожалению, не помогло Грустный
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #3 : Декабрь 22, 2014, 11:30 »

Попробуй reply->readAll(); поместить в void MainWindow::uploadProgress()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.