increase Temat założony przez niniejszego użytkownika |
Wysyłanie pliku na serwer FTP, program zacina się. » 2012-08-15 15:26:43 Cześć, mam problem z wysyłaniem pliku na serwer FTP.
Otóż, użyłem funkcji:
int WyslijPlik() { char ftp[] = "SERWER"; char user[] = "USER; char password[] = "PASSWORD"; char localFile[] = "LOKALIZACJA NA DYSKU"; char remoteFile[] = "LOKALIZACJA NA FTP"; HINTERNET hInternet; HINTERNET hFtpSession; if( InternetAttemptConnect( 0 ) == ERROR_SUCCESS ) cout << "Internet dostepny, wysylanie pliku..\n" << endl; else { cout << "Internet niedostepny.\n" << endl; return - 1; } hInternet = InternetOpen( NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 ); if( hInternet != NULL ) { hFtpSession = InternetConnect( hInternet, ftp, INTERNET_DEFAULT_FTP_PORT, user, password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); if( hFtpSession != NULL ) { if( FtpPutFile( hFtpSession, localFile, remoteFile, FTP_TRANSFER_TYPE_BINARY, 0 ) ) { InternetCloseHandle( hFtpSession ); InternetCloseHandle( hInternet ); } else { cout << "Blad podczas wysylania pliu." << endl; return - 1; } } else return - 1; } else return - 1; cout << "Wyslano Plik.\n" << endl; return 0; }
Problemem jest to, że program dochodzi do momętu wysyłania ("Internet dostepny, wysylanie pliku..\n") a później ani komunikatu o błędzie ani o sukcesie. Problemem może być składnia lokalizacji:
char localFile[] = "log.png"; char remoteFile[] = "ftp:\\NowyFolder";
lecz nie jestem tego pewien.
Z góry dziękuje za pomoc! |
|
xevuel |
» 2012-08-15 15:41:14 |
|
increase Temat założony przez niniejszego użytkownika |
Zwraca.. » 2012-08-15 15:49:20 Funkcja zwraca komunikat "Internet dostepny, wysylanie pliku.." i tutaj program stoi. |
|
xevuel |
» 2012-08-15 15:50:12 Nie, ona tego nie zwraca. Od zwracania jest return . |
|
increase Temat założony przez niniejszego użytkownika |
» 2012-08-15 15:52:42 Ok, dzięki za pomoc. Za chwilę się pobawię GetLastError i FormatMessage.
A składniowo są ok te dwa wersy (chodzi o to czy lokalizacja jest dobrze zapisana)?
char localFile[] = "log.png"; char remoteFile[] = "ftp:\\NowyFolder"; |
|
xevuel |
» 2012-08-15 15:55:24 Raczej wątpię. Po pierwsze, ukośniki są w złą stronę, a po drugie nie ma nazwy serwera. //edit: Pointer to a null-terminated string that contains the name of the file to be created on the remote system.
|
Z MSDN'u. Nic nie pisze o ścieżce, więc być może sama nazwa pliku wystarczy. |
|
increase Temat założony przez niniejszego użytkownika |
» 2012-08-15 16:12:10 A tak wgl. to jeżeli funkcja zwraca -1 to program nie powinien się zamykać a nie stać nie przyjmując nowych zmiennych (jest wczytywanie w switchu). |
|
xevuel |
» 2012-08-15 16:16:53 No to sprawdź od którego miejsca program zaczyna działać nieprawidłowo, i postaw tam breakpointa z tych dwóch funkcji, które wspomniałem wcześniej. |
|
« 1 » 2 3 |