ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
782
782
EMPFEHLEN
-
So , nun hab ich meine vorherigen Problemchen gelöst
und da kommt dann auch schon das nächste
Mit
Code :1 2 3 4 5 6 7
HINTERNET hInternet; HINTERNET hFtpSession; hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0); hFtpSession = InternetConnect(hInternet,TEXT("ftp.uploaded.to") , INTERNET_DEFAULT_FTP_PORT, TEXT("bone"), TEXT("**passwort**"), INTERNET_SERVICE_FTP, 0, 0); FtpPutFile(hFtpSession, TEXT("C:\\Release.rar"), TEXT("file1.rar"), FTP_TRANSFER_TYPE_BINARY, INTERNET_FLAG_PASSIVE) ;
lad ich nun eine Datei hoch
Hab mal Probiert mir während des Uploads immer Upload ausgeben zu lassen mit einer while schleife und zwar so:
Code :1 2 3 4 5
while(FtpPutFile(hFtpSession, TEXT("C:\\Release.rar"), TEXT("file1.rar"), FTP_TRANSFER_TYPE_BINARY, INTERNET_FLAG_PASSIVE)) { cout << "\n Upload"; }
Es wird lediglich nach dem hochladen ein einziges mal Upload ausgegeben.
Gibt es da eine andere Möglichkeit?
Und kann man herausfinden wie viel bytes schon hochgeladen wurden?
Ich finde absolut nichts bei Google über FTP funktionen und schon gar nicht das was ich suche und langsam wirds schon peinlich das ich hier so viel stuss frage
-
01.10.09 08:07 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Siehe http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
Da steht genau was die Funktion macht und welche Funktionen man verwenden kann falls man mehr Kontrolle über den Transfer möchte.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Du wolltest wohl auf INTERNET_STATUS_CALLBACK hinaus
Danach hab ich dann mal gegooglet weil ich bei MSDN nur Bahnhof verstehe
und dann was gelesen das ich noch eine callback Funktion dazu brauche
und wie diese auszusehen hat weiss ich auch nicht
Was ich wohl verstanden habe ist
das ich
Code :1 2 3 4 5
INTERNET_STATUS_CALLBACK lpfnCallback; ... InternetSetStatusCallback(hFtpSession, lpfnCallback);
brauche und bei InternetSetStatusCallback als ersten Parameter den Connect angeben muss und als zweiten angeben muss worin die Infos gespeichert werden
Wie ich nun an die Infos dran komme war leider nicht ersichtlich aus den Codes die ich gefunden habe
mit cout << lpfnCallback; bekomm ich mal 0031F40 oder 00511F40 oder andere Sachen raus und das bringt mich auch nicht weiter
Andere frage wäre noch ob ich bei InternetOpen als letzten Parameter
INTERNET_FLAG_ASYNC setzen muss.
Mach ich das funktioniert aber der Upload nicht mehr - hab aber gelesen das ich das machen muss.
Immer mehr verwirrende Sachen...
Kannst du mir vielleicht noch ein zwei treffende Wörter geben unter denen ich eventuell etwas finden kann?
Ich such mich duselig
-
01.10.09 18:46 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Du solltest dich informieren, was Callback Funktionen sind.
Du mußt eine Funktion definieren, die die gleiche Signatur wie InternetStatusCallback (siehe http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx).
Diese Funktion kannst du dann an die InternetSetStatusCallback übergeben.
Deine Funktion würde dann automatisch aufgerufen werden wenn eine Statusänderung eintritt. (siehe http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx für ein Beispiel)
Dir ist aber schon bewußt, das du damit nicht die Übertragung der Bytes verfolgen kannst?
Ich bezog mich in meiner letzten Nachricht auf folgendes:
GrußFtpPutFile is a high-level routine that handles all the bookkeeping and overhead associated with reading a file locally and storing it on an FTP server. An application that needs to send file data only, or that requires close control over the file transfer, should use the FtpOpenFile and InternetWriteFile functions.If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Nein war mir nicht bewusst das es damit nicht geht.
Du bist mir echt eine große Hilfe
Mit deinen Links kann ich ja schonmal die ein oder anderen Ereignisse rausfischen was ich sowieso brauche
Und womit ist es möglich herauszufinden wie viele Bytes schon gesendet wurden?
Ist es überhaupt möglich?
-
02.10.09 07:45 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Wie in dem Absatz steht den ich zitiert habe, müßtest du dann die InternetWriteFile Funktion verwenden.
Dazu mußt du die Datei öffnen (mit CreateFile oder fopen) und Stück für Stück auslesen. Die ausgelesenen Daten schreibst du dann mit InternetWriteFile in die Zieldatei auf dem FTP Server. Dann mußt du nur noch mitzählen wieviel Daten schon übertragen wurden.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Upload Und Fortschritt.
Von mckani im Forum PHPAntworten: 15Letzter Beitrag: 11.07.11, 23:58 -
Dateiupload-fortschritt
Von 3dsmaxer im Forum PHPAntworten: 1Letzter Beitrag: 26.06.07, 13:23 -
Fortschritt bei Upload anzeigen
Von Katzenbauer im Forum .NET Web und KommunikationAntworten: 9Letzter Beitrag: 22.02.07, 09:57 -
Fortschritt anzeigen
Von Nicole im Forum Visual Basic 6.0Antworten: 7Letzter Beitrag: 04.12.03, 08:10 -
Fortschritt-Anzeige bei Datei-Upload
Von Maikel im Forum PHPAntworten: 5Letzter Beitrag: 13.06.02, 12:26





Zitieren

Login






