Mit C ein Txt-Dokument auf einen FTP-Server uploaden



  • Hey,
    ich möchte, wie die Topic schon sagt,
    mit C auf meinen Webspace connecten
    und dort eine Txt.Datei hochladen.

    Leider habe ich keinen Schimmer davon
    und wollte fragen ob man mir hier evtl. helfen kann?

    mfg,
    hans jürgen



  • Mit reinem C, hum... wie wäre es mit der CMD und den FTP-Befehlen?



  • the hard or the easy way? 😃
    the easy way is, nimmsu ne lib. the hard way is, machsu mit sockets.



  • Dann mach ich das doch mit lib. aber wie?
    Kann mir da jemand weiter helfen?

    Grüße,
    Hans Jürgen





  • Vielen Dank,
    das hat mir sehr geholfen!

    Grüße,
    Hans Jürgen!



  • Hallo 🙂
    Also ich hab jetzt mit der hier erhaltenen Hilfe,
    folgendes Script zusammen gebastelt.

    Allerdings klappt das nicht 😢 Wieso?
    Grüße,
    Hans Jürgen!

    char *host={"ftp.r0biin93.r0.funpic.de"};
    printf("Schritt 1 - Geklappt");
    char *user={"r0biin93"};
    char *password={"********"};
    char *inputfile={"C:/Users/Robin/Pictures/Desktop/Medien/g5ed2sd2d.txt"};
    char *path={"g5ed2sd2d.txt"};
    netbuf **nControl;
    
    int FtpConnect(const char *host, netbuf **nControl);
    int FtpLogin(const char *user, const char *password, netbuf *nControl);
    int FtpPut(const char *inputfile, const char *path, char mode,
    	netbuf *nControl);
    void FtpQuit(netbuf *nControl);
        return 0;
    


  • Kann es sein das du überhaupt keine Ahnung hast von dem was du da machst?
    Durch das deklarieren von Funktionen kommst du nicht wirklich weiter.

    Stell konkrete Fragen, bitte.

    PS: Nenn C/C++-Quellcode nie wieder Script, das ist abwertend 😃



  • 100% Treffer 😃
    Ich habe keine AHnung wie das mit Ftp klappt.

    Deshalb wende ich mich ja an dieses Forum hier 😉
    Kannst du mir das vielleicht korregieren, bzw sagen wieso
    es nicht klappt?

    grüße.



  • Hans Jürgen schrieb:

    100% Treffer 😃
    Ich habe keine AHnung wie das mit Ftp klappt.

    Deshalb wende ich mich ja an dieses Forum hier 😉
    Kannst du mir das vielleicht korregieren, bzw sagen wieso
    es nicht klappt?

    grüße.

    Hi Bruder!
    Was sagt dein Compiler dazu?



  • Hey 🙂
    Mein Compiler sagt leider gar nix dazu 😉
    Er sagt das kein Fehler auftritt.
    Aber hochgeladen wird die Datei auch nicht!

    Grüße.



  • Na, wenn dein Compiler den Code so durchgehen lässt, dann ist der ka-budd!
    Da muss doch wenigstens main stehen, irgendwo...oder wusstest du das nicht?
    Gru-huß,
    b.b.



  • Compiler: Default compiler
    Building Makefile: "C:\Users\Robin\Pictures\Desktop\Medien\C . C++\Makefile.win"
    Führt  make... aus
    make.exe -f "C:\Users\Robin\Pictures\Desktop\Medien\C . C++\Makefile.win" all
    make.exe: Nothing to be done for `all'.
    
    Ausführung beendet
    Kompilierung erfolgreich
    

    grüße.



  • ja, nagut, mit nem c++ compiler mag das gehen. ich sehe aber in deinem code nirgends funktionsaufrufe, hast du die auch aufgerufen?



  • Ich dachte das habe ich gemacht?

    Bzw. wir muss ich sie den aufrufen?
    Sorry, bin noch nicht solange mit C
    zugange.

    Grüße.



  • Hallo

    Naja, schau dir lieber nochmal die Grundlagen an... Du deklarierst ne Funktion:

    void HansJuergen(const char *Status)
    {
    	std::cout<< Status;
    };
    

    Und rufst sie, nach der Deklaration auf:

    HansJuergen("Noob");
    

    Wird dir aber nicht viel weiter helfen, weil du die Grundlagen nicht drauf hast.

    way



  • Hallo alle zusammen.

    Ich versuche das ganze nochmal klar darzustellen.
    Ich bin nicht gut in C, da ich ansonsten auch nicht damit arbeite.

    Muss jetzt aber ein Programm in C schreiben und bin an einem
    Problem hängen geblieben. Das Problem ist:

    Das ich gerne hätte, das ein Prozess eine TxT Datei im Hintergrund
    (ohne sichtbarem Dos-Fenster o.ä.) auf meinen FTP-Server lädt.

    Dazu habe ich folgende Source geschrieben. Ich weiß nicht genau,
    was ihr meint mit Funktion ausführen. Könnte mir bitte jemand,
    einen Code so schreiben, das es klappt bzw. sagen, was ich veränden
    muss, damit es klappt?

    Code:

    char *host={"ftp.r0biin93.r0.funpic.de"};
    printf("Schritt 1 - Geklappt");
    char *user={"r0biin93"};
    char *password={"12345678"};
    char *inputfile={"C:/Users/Robin/Pictures/Desktop/Medien/g5ed2sd2d.txt"};
    char *path={"g5ed2sd2d.txt"};
    netbuf **nControl;
    
    ftp FtpConnect
    
    int FtpConnect(const char *host, netbuf **nControl);
    int FtpLogin(const char *user, const char *password, netbuf *nControl);
    int FtpPut(const char *inputfile, const char *path, char mode,
    	netbuf *nControl);
    void FtpQuit(netbuf *nControl);
    

    Grüße,
    Hans Jürgen!



  • Hallo

    Wie ich bereits gesagt habe , musst du die Funktionen aufrufen. Wie das geht, habe ich dir schon in Form von Code gezeigt.

    way



  • Du meinst dann vom Prinzip her so:

    char *host={"ftp.r0biin93.r0.funpic.de"};
    printf("Schritt 1 - Geklappt");
    char *user={"***********"};
    char *password={"**********"};
    char *inputfile={"C:/Users/Robin/Pictures/Desktop/Medien/g5ed2sd2d.txt"};
    char *path={"g5ed2sd2d.txt"};
    netbuf **nControl;
    
    int FtpConnect(const char *host, netbuf **nControl);
    int FtpLogin(const char *user, const char *password, netbuf *nControl);
    int FtpPut(const char *inputfile, const char *path, char mode,
    	netbuf *nControl);
    void FtpQuit(netbuf *nControl);
    
    FtpConnect;
    FtpLogin;
    FtpPut;
    FtpQuit;
    

    oder ??

    Grüße.



  • Hallo

    Nicht ganz. So würden man einfache Datentyp-Deklarationen (normale Variablen) aufrufen. Funktionen ruft man immer mit den Klammern auf. Du hast jetzt sogar noch Parameter, die definiert werden müssen. Parameter sind die Variablen zwischen den "()" Klammern.

    Ich bin mal so gnädig und schreibe dir den richtigen Code:

    char *host={"ftp.r0biin93.r0.funpic.de"};
    char *user={"***********"};
    char *password={"**********"};
    char *inputfile={"C:/Users/Robin/Pictures/Desktop/Medien/g5ed2sd2d.txt"};
    char *path={"g5ed2sd2d.txt"};
    netbuf **nControl;
    
    int FtpConnect(const char *host, netbuf **nControl);
    int FtpLogin(const char *user, const char *password, netbuf *nControl);
    int FtpPut(const char *inputfile, const char *path, char mode,
        netbuf *nControl);
    void FtpQuit(netbuf *nControl);
    
    FtpConnect(host, nControl);
    FtpLogin(user, password, nControl);
    FtpPut(inputFile, path, //Hier musst du schauen welche Modi es in der lib gibt);
    FtpQuit(nControl);
    

    Falls du das in C++ machen möchtest oder portierst, ist es sinnvoll es in der OOP, sprich mit Klassen (übersichtlicher, strukturierter) zu machen.

    way


Anmelden zum Antworten