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