6
如果我使用System.Net.FtpWebRequest
將文件上傳到vsftpd服務器,是否需要使用GetResponse檢查文件是否正確上傳?或者我得到每個錯誤的例外?我應該檢查System.Net.FtpWebResponse
什麼?如何檢查FtpWebRequest是否有錯誤
如果我使用System.Net.FtpWebRequest
將文件上傳到vsftpd服務器,是否需要使用GetResponse檢查文件是否正確上傳?或者我得到每個錯誤的例外?我應該檢查System.Net.FtpWebResponse
什麼?如何檢查FtpWebRequest是否有錯誤
呀,你想從請求對象搶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。
StatusCode中有相當多的成員可以返回,因此檢查它可能會非常棘手。
這裏的代碼/說明的列表可能會返回:
編輯:如果出現錯誤的交接應該拋出一個異常,當你啓動一個流作家。你可以做的就是圍繞它做一個try-catch,如果出現問題,你將能夠得到狀態碼並將它打印出來,以便用於你正在使用的任何日誌媒體,這樣你就可以看到具體問題是什麼。我已經修改了上面的代碼以反映所有這些(僅使用一種傳輸方式,您可以使用自己的方法)。
我應該檢查哪些FtpWebResponse?提供各種FTP服務器不同的結果? vsftpd可以給出什麼結果? – magol 2009-12-15 14:25:10
可以檢查FtpStatusCode是否小於300? – magol 2009-12-16 09:49:31