2010-12-14 24 views
13

के साथ अपलोड के दौरान मैं एक FTP सर्वर पर निर्देशिका में अपलोड फ़ाइल को आजमाने की कोशिश कर रहा हूं। मैंने FtpWebRequest के साथ इस विधि का उपयोग किया। मैं इस उपयोगकर्ता के लिए एक घर निर्देशिका में एक फ़ाइल अपलोड करना चाहते हैं, लेकिन मैं हमेशा निम्न त्रुटि संदेश मिलता है:"अनुरोधित यूआरआई अवैध है" FTPWebRequest

अनुरोध किया गया URI इस एफ़टीपी आदेश के लिए अमान्य है।

समस्या क्या हो सकती है? मैंने निष्क्रिय मोड का उपयोग करने की कोशिश की, लेकिन यह अभी भी वही है।

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

त्रुटि से पता चलता है कि कोई भी FTP सर्वर 12.22.44.45 पर बैक और पासवर्ड (जो भी वास्तविक जानकारी है) के प्रमाण पत्र स्वीकार करने के इच्छुक है। क्या आपने इन सेटिंग्स/क्रेडेंशियल का उपयोग कर कोड के बाहर इस सर्वर को ftp करने का प्रयास किया है? –

+0

क्या आप हमें बता सकते हैं कि आपको त्रुटि संदेश कहां मिलता है? यही है, क्या बयान त्रुटि का कारण बनता है? –

उत्तर

40

यदि आप कुछ अपलोड करना चाहते हैं, तो आप have to provide the FTPClient with a filename देखेंगे।

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://12.22.44.45/myNewFile.dat"); 
+0

यह सही उत्तर है –

2

मैं तुम्हें WebClient जो एक उच्च स्तर अमूर्त है और HTTP और FTP के साथ काम करता है और बहुत सरल एपीआई और प्रदर्शन के लिहाज से बहुत ही (एक ही API का उपयोग करता है) का उपयोग सुझाव देते हैं।

यहां upload data है।

संबंधित मुद्दे