2010-12-14 13 views
13

ile yükleme sırasında "İstenen URI geçersiz" FTP sunucusundaki bir dizine dosya yüklemeyi deniyorum. Bu yöntemi FtpWebRequest ile kullandım. Bu kullanıcı için bir ev dizinine bir dosya yüklemek istiyorum, ama her zaman aşağıdaki hata iletisini alabilirsiniz:FTPWebRequest

İstenen URI bu FTP komut için geçersiz.

Sorun ne olabilir? Pasif modunu kullanmayı denedim, ama yine de aynı.

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

Hata, 12.22.44.45 üzerinde pokus ve parola bilgilerini (gerçek bilgi ne olursa olsun) kabul etmeye istekli hiçbir ftp sunucusunun olmadığını gösterir. Bu ayarları/kimlik bilgilerini kullanarak kodun dışına bu sunucuya katılmayı denediniz mi? –

+0

Hata mesajını nereden aldığınızı söyleyebilir misiniz? Yani, hangi ifade hataya neden olur? –

cevap

2

Sana bir üst düzey soyutlama ve HTTP ve FTP ile çalışır ve daha basit bir API ve performans akıllıca (aynı API kullanır) oldukça aynı vardır WebClient kullanmanızı öneririz.

İşte upload data.