2009-12-15 11 views
6

यदि मैं एक vsftpd सर्वर पर फ़ाइल अपलोड करने के लिए System.Net.FtpWebRequest का उपयोग करता हूं, तो क्या मुझे फ़ाइल को सही तरीके से अपलोड किया गया था या नहीं, यह जांचने के लिए मुझे GetResponse का उपयोग करने की आवश्यकता है? या मुझे हर त्रुटि के लिए अपवाद मिलता है? System.Net.FtpWebResponse में क्या मुझे जांच करनी चाहिए?त्रुटियों के लिए FtpWebRequest की जांच कैसे करें

उत्तर

6

हाँ, आप अनुरोध वस्तु से FTPWebResponse वस्तु हड़पने के लिए ... इस तरह हैं:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); 
request.Method = WebRequestMethods.Ftp.UploadFile; 

FtpWebResponse response = (FtpWebResponse) request.GetResponse(); 
request.KeepAlive = false; 

byte[] fileraw = File.ReadAllBytes("CompleteLocalPath"); 

try 
{ 
    Stream reqStream = request.GetRequestStream(); 

    reqStream.Write(fileraw, 0, fileraw.Length); 
    reqStream.Close(); 
} 
catch (Exception e) 
{ 
    response = (FtpWebResponse) request.GetResponse(); 
    // Do something with response.StatusCode 
    response.Close(); 
} 

आप Ftp.WebResponse.StatusCode जाँच करना चाहते हैं जाएगा।

स्टेटसकोड में बहुत से सदस्य हैं जिन्हें वापस किया जा सकता है, इसलिए इसके खिलाफ जांच करना मुश्किल हो सकता है।

यहाँ कोड/विवरण की एक सूची है कि लौटा दी दे सकता है:

FtpStatusCode

संपादित करें: कुछ एक हस्तांतरण के साथ गलत हो जाता है जब आप एक धारा लेखक ऊपर आग एक अपवाद फेंक देना चाहिए। आप क्या कर सकते हैं, इसके चारों ओर एक कोशिश-पकड़ लपेटें, और यदि कुछ गलत हो जाता है तो आप स्टेटस कोड प्राप्त कर पाएंगे और जो भी लॉग माध्यम आप उपयोग कर रहे हैं उसे प्रिंट कर पाएंगे ताकि आप देख सकें कि विशिष्ट समस्या क्या है। मैंने उपर्युक्त कोड को इस सबको प्रतिबिंबित करने के लिए संशोधित किया है (स्थानांतरण के केवल एक ही तरीके का उपयोग करके, आप स्वयं का उपयोग कर सकते हैं)।

+0

FtpWebResponse में क्या मुझे जांचना चाहिए? विभिन्न एफ़टीपी सर्वर अलग-अलग परिणाम प्रदान करता है? फिर vsftpd क्या परिणाम दे सकते हैं? – magol

+0

क्या यह जांचना ठीक है कि FtpStatusCode 300 से कम है या नहीं? – magol

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