2010-12-14 17 views
13

Próbuję przesłać plik do katalogu na serwerze FTP. Użyłem tej metody z FtpWebRequest. Chciałbym przesłać jeden plik do katalogu domowego dla tego użytkownika, ale zawsze pojawia się następujący komunikat o błędzie:"Żądany identyfikator URI jest nieprawidłowy" podczas przesyłania z FTPWebRequest

Żądany URI jest nieprawidłowy dla tego polecenia FTP.

Co może być problemem? Próbowałem wyłączyć tryb pasywny, ale wciąż jest taki sam.

static void FtpUpload() 
{ 


    // Get the object used to communicate with the server. 
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://12.22.44.45"); 
    request.Method = WebRequestMethods.Ftp.UploadFile; 
    request.UsePassive = false; 

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

    // Copy the contents of the file to the request stream. 
    StreamReader sourceStream = new StreamReader(path); 
    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(); 

    Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription); 

    response.Close(); 

} 
+0

Błąd sugeruje, że żaden serwer ftp nie siedzi na 12.22.44.45 gotów zaakceptować poświadczenia pokus i hasło (bez względu na prawdziwe informacje). Czy próbowałeś ftp do tego serwera poza kodem przy użyciu tych ustawień/poświadczeń? –

+0

Czy możesz nam powiedzieć, skąd pojawia się komunikat o błędzie? To jest, co oświadczenie powoduje błąd? –

Odpowiedz

2

Proponuję użyć WebClient który jest wyższy poziom abstrakcji i współpracuje z HTTP i FTP oraz ma znacznie prostsze API i wydajności mądry całkiem takie same (używa tego samego API).

Oto upload data.

Powiązane problemy