Veröffentlicht 24. Mai 200619 j Hi, wie kopiert man eine Datei auf einen FTP Server? bCheck = CopyFile("C:\\test.txt","ftp://server/test.txt",TRUE); So gehts nicht.
24. Mai 200619 j Natürlich indem Du die Daten unter Verwendung des FTP-Protokolls zum Server sendest. Wenn Du eine fertige Funktion suchst, die Du auch nutzen kannst, ohne viel Ahnung vom FTP-Protokoll selbst zu haben, dann schau Dir z.B. FtpPutFile an.
26. Mai 200619 j Ich habe mittlerweile etwas mehr heraus gefunden: HINTERNET FTP; HINTERNET TEST; //Datei an FTP Server senden.... FTP = InternetOpen( "ftp://server.net",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,INTERNET_FLAG_ASYNC); TEST = InternetConnect(FTP,"ftp://server.net",21,NULL,NULL,INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,NULL); bCheck = FtpPutFile(FTP, "c:\\test","ftp://server.net/test.txt",FTP_TRANSFER_TYPE_UNKNOWN,INTERNET_FLAG_RELOAD); Aber es funktioniert noch nicht ganz. InternetConnect gibt 0x0000000 zurück. Und FtpPutFile = FALSE. Woran könnte das noch liegen?
6. Juni 200619 j InternetConnect geht jetzt. das Problem war als Ziel muss man nur die IP eingeben ohne ftp://. Aber FtpPutFile tut nicht was es soll. Bin mir bei dem letzten Parameter nicht sicher was das soll... Kann mir da einer helfen bitte? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/ftpputfile.asp
6. Juni 200619 j Was heißt "tut nicht, was es soll"? Rückgabewert? GetLastError()? Der letzte Parameter wird nur benutzt, wenn du mit InternetSetStatusCallback eine Callbackfunktion angegeben hast. Ansonsten kannst du da 0 übergeben.
6. Juni 200619 j Rückgabewert = FALSE. GetLastError gibt mir ein "ò". Weiß aber nicht ob ich die Funktion richtig benutzt hab. Das habe ich nämlich noch nie *schäm* bCheck = FtpPutFile(FTP, "D:\test.txt","test.txt",INTERNET_FLAG_TRANSFER_ASCII,INTERNET_FLAG_RELOAD); CString csError = GetLastError();
6. Juni 200619 j Rückgabewert = FALSE. GetLastError gibt mir ein "ò".GetLastError liefert eine Zahl Der Backslash im zweiten Parameter muss auf jeden Fall doppelt sein. \t ist die Escapesequenz für ein Tab-Zeichen.
6. Juni 200619 j Sorry hab ich hier falsch gepostet. Im Code sind es zwei \\. Aslo der Letzte Parameter ist definitiv falsch. Da muss InternetSetStatusCallback rein. Glaub ich... Mal sehen ob ich rausbekomme wie....
6. Juni 200619 j Sorry hab ich hier falsch gepostet. Im Code sind es zwei \\. Aslo der Letzte Parameter ist definitiv falsch.Hast du gelesen, was ich dazu geschrieben habe? Übrigens, 12018 ist ERROR_INTERNET_INCORRECT_HANDLE_TYPE. Gib da mal TEST an, nicht FTP.
6. Juni 200619 j So sieht das ganze aus: HINTERNET FTP; FTP = InternetOpen( "[COLOR="darkred"]ftp://server.net[/COLOR]",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,INTERNET_FLAG_ASYNC); [COLOR="SeaGreen"]// HANDLE, IP, PORT, BENUTZER, PASSWORT[/COLOR] InternetConnect(FTP, "[COLOR="darkred"]server.net[/COLOR]",21,NULL,NULL,INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE,NULL); bCheck = FtpPutFile(FTP, "[COLOR="DarkRed"]D:\\test.txt[/COLOR]","[COLOR="darkred"]test.txt[/COLOR]",INTERNET_FLAG_TRANSFER_ASCII,[B]NULL[/B]); Es meinst warscheinlich das Handle FTP. Aber mir ist immer noch nicht klar was ich als letzten Parameter bei FtpPutFile eingeben muss wo jetzt NULL steht.
6. Juni 200619 j Bei InternetOpen ist der erste Parameter ja auch falsch. Er will das hier: lpszAgent [in] Pointer to a null-terminated string that specifies the name of the application or entity calling the WinINet functions. This name is used as the user agent in the HTTP protocol. Was bedeutet das denn?
6. Juni 200619 j Man geil das Klappt!!! :e@sy :e@sy :e@sy :e@sy :e@sy :e@sy Echt SUPER!! Du bist der absolute C++ King :bimei
25. Juni 200619 j HINTERNET FTP; FTP = InternetOpen( "ftp://lalala.de",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,INTERNET_FLAG_ASYNC); // HANDLE, IP, PORT, BENUTZER, PASSWORT InternetConnect(FTP, "lala.de",21,"username","passwort",INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE,NULL); FtpPutFile(FTP, "D:\\lala.exe","htdocs\\lala.exe",INTERNET_FLAG_TRANSFER_ASCII,NULL); kann mir einer erklären warum er es nicht hochläd?
25. Juni 200619 j Ich würde es mal ohne den Unterordner htdocs versuchen. Nur zum Test! Kann aber auch an Den Einstelllungen vom Server liegen oder an einer Firewall. Ich hatte auch ein paar Probleme, bis ich den Server richtig konfiguriert hatte.
25. Juni 200619 j daran liegts ned -.- ich bekomme bei FtpPutFile den fehlercode 6 (ungültiges handle)
25. Juni 200619 j Hast du den Thread nicht gelesen? Das ist genau dasselbe Problem, das Filou auch hatte. Du musst bei FtpPutFile das Handle angeben, dass du bei InternetConnect als Rückgabewert bekommst (und momentan wegwirfst).
25. Juni 200619 j jop, jetzt habe ich den handle lol (lol = InternetConnect(...)) angegeben. aber jetzt bekomm ich nen fehlercode 12003 was kann ich dagegen tun
26. Juni 200619 j aber jetzt bekomm ich nen fehlercode 12003Das ist, wie man in wininet.h nachlesen kann, ERROR_INTERNET_EXTENDED_ERROR. Die MSDN Library sagt dazu: ERROR_INTERNET_EXTENDED_ERROR An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text.
26. Juni 200619 j warum?Sonnenflecken. Im Ernst, wie soll dir jemand helfen, wenn du so überhaupt gar keine Fehlerbeschreibung ablieferst? P.S.: lädt
26. Juni 200619 j es klappt eh alles, fehlercode wird 0 zurückgegeben, nur am ftp ist die datei 147 kb groß HINTERNET hFtp = InternetOpen("ftp://server.de", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL); cout << GetLastError( )<<endl; hFtp = InternetConnect(hFtp, "server.de", 21, "user", "pass", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, NULL); cout << GetLastError( )<<endl; FtpPutFile(hFtp, "D:\\asp100.zip", "htdocs//lala.zip", FTP_TRANSFER_TYPE_BINARY, NULL); cout << GetLastError( )<<endl; InternetCloseHandle(hFtp);
26. Juni 200619 j es klappt eh alles, fehlercode wird 0 zurückgegeben,Nur am Rande: GetLastError kann man nur dann sinnvoll aufrufen, wenn vorher etwas schiefgegangen ist. nur am ftp ist die datei 147 kb großUnd? Ist das zu viel oder zu wenig? Wie groß ist die Quelldatei? Stimmt der Inhalt, oder steht da nur Quatsch drin?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.