Wysyłanie pliku na ftp

0

Witam

Mam problem z wysłaniem pliku z dysku na serwer ftp korzystam z kodu zamieszczonego na stronie msdn.microsoft.com jednak efektem jest błąd.
Kod:

   public void test()
        {
            // Get the object used to communicate with the server.  
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(@"ftp://ftp.adres.cba.pl/test.txt");
            request.Method = WebRequestMethods.Ftp.UploadFile;

            // This example assumes the FTP site uses anonymous logon.  
            request.Credentials = new NetworkCredential("nazwa_uzytkownika", "haslo");

            // Copy the contents of the file to the request stream.  
            StreamReader sourceStream = new StreamReader(@"E:\test.txt");
            byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
            sourceStream.Close();
            request.ContentLength = fileContents.Length;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
            MessageBox.Show(response.StatusDescription, "info", MessageBoxButtons.OK);
        
            response.Close();
        }

Przy linijce:
Stream requestStream = request.GetRequestStream();
jest zgłaszany błąd (podczas próby wykonania):
WebException was unhandled
An unhandled exception of type 'System.Net.WebException' occurred in System.dll
Additional information: Serwer zdalny zwrócił błąd: (553) Nazwa pliku niedozwolona.

Ktoś może wie gdzie leży błąd w nazwie? Może jakiegoś "/" lub "" trzeba gdzieś wstawić. Przy pomocy programu do wysyłania pliku na serwer bez kłopotu da się wskazany plik na serwerze skopiować.

0

Ja obstawiam, że na serwerze w podanej lokalizacji nie istnieje plik test.txt

0

Jeżeli możesz to powtórzyć jakimś programem FTP i działa to ja bym spróbował:

  1. Zalogować Wiresharkiem jak wygląda ruch podczas uploadu z programu FTP.
  2. Zalogować Wiresharkiem jak wygląda ruch podczas uploadu z twojego programu.
  3. Użyć na tych logach opcji "Follow TCP strem" i porównać jakie komendy FTP są wysyłane oraz z jakimi parametrami. W przypadku programu FTP będzie ich pewnie więcej, ale zwróć uwagę głównie na te, które się powtarzają.
1

A po co się męczyć? Nie lepiej skorzystać z czegoś gotowego zamiast wynajdować koło na nowo?: https://github.com/robinrodricks/FluentFTP

1 użytkowników online, w tym zalogowanych: 0, gości: 1