Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wysyłanie pliku na serwer FTP, program zacina się.

Ostatnio zmodyfikowano 2012-08-16 18:16
Autor Wiadomość
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:
C/C++
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:
C/C++
char localFile[] = "log.png";
char remoteFile[] = "ftp:\\NowyFolder";
lecz nie jestem tego pewien.
Z góry dziękuje za pomoc!
P-62573
xevuel
» 2012-08-15 15:41:14
Co zwraca funkcja? Jeśli -1, wykorzystaj odpowiednio funkcje » WinAPIGetLastError i » WinAPIFormatMessage w celu uzyskania informacji.
P-62574
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.
P-62575
xevuel
» 2012-08-15 15:50:12
Nie, ona tego nie zwraca. Od zwracania jest
return
.
P-62576
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)?

C/C++
char localFile[] = "log.png";
char remoteFile[] = "ftp:\\NowyFolder";
P-62577
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.
P-62578
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).
P-62580
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.
P-62581
« 1 » 2 3
  Strona 1 z 3 Następna strona