Qt keine Ftp Verbindung



  • Hallo liebe Community,
    Ich versuche mit Qt eine Verbingung zu meinem Ftp Server herzustellen(Filezilla Server auf localhost), aber ich bekomme keine Verbindung aufgebaut. Hier mal der relevante Code teil:

    QUrl url;
        url.setHost("ftp://localhost/");
        url.setUserName("username");
        url.setPassword("password");
        url.port(21);
        QNetworkRequest upup(url);
        QNetworkAccessManager *upload_test = new QNetworkAccessManager();
        QFile *testfile = new QFile("/test.txt");
        if(testfile->open(QFile::ReadOnly))
            upload_test->put(upup, testfile);
        qDebug()<<"done.";
    

    Wenn ich nun meinen Server log checke, sehe ich nichtmals Verbindungsversuche. 😞

    Ich hoffe jemand kann mir weiterhelfen 🙂

    MfG Steven



  • Ich glaube du musst auch ein File bei QUrl angeben was runtergeladen werden soll.

    Ansonsten
    http://code.qt.io/cgit/qt/qtftp.git/

    Außerdem solltest du noch das

    finished(QNetworkReply*)
    

    Signal verarbeiten und ggf. auch auf Fehler prüfen.



  • Hey, danke für die Antwort. Das Programm soll etwas hoch und nicht runterladen. Das mit der Fehlerprüfung werde ich gleich machen, danke für den Tipp! 🙂



  • So, habe jetzt überprüft ob das finished Signal jemals gecalled wird, dem scheint nicht so. Hier mal der code den ich hinzugefügt habe:

    connect(upload_test, &QNetworkAccessManager::finished, this, &Upload::get_reply);
    //und get_reply sieht so aus:
    void Upload::get_reply() {
        qDebug()<<"finished!!!";
    }
    

    Ich hoffe mit kann jemand weiterhelfen. 😞



  • Habe nun auch versucht Error Meldungen auslesen zu lassen, diese gaben jedoch nichts aus. Hier der Code:

    if(reply->error() != QNetworkReply::NoError)
          qDebug() << "error!" << reply->error();
    //und
    
    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(requestError(QNetworkReply::NetworkError)));
    
    //hier die requesterror Funktion
    
    void Upload::requestError(QNetworkReply::NetworkError e){
    
       qDebug()<<e<<endl;
    }
    

    Dann habe ich noch zwei Ausgaben eingefügt, eine kurz vor der Upload Funktion und eine danach. Beide werden aufgerufen, ich habe aber trotzdem keine logs für Verbindungsversuche.

    Hoffe mir kann jemand weiterhelfen 😞


  • Mod

    Dein Pfad für den Request muss anscheinend die Datei enthalten:
    https://forum.qt.io/topic/30854/problem-using-qnetworkaccessmanager-ftp-solved/4


Anmelden zum Antworten