如果我使用System.Net.FtpWebRequest
将文件上传到 vsftpd 服务器,是否需要使用 GetResponse 来检查文件是否正确上传?还是每个错误都会出现异常?我System.Net.FtpWebResponse
应该检查什么?
问问题
12268 次
1 回答
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。
StatusCode 中有相当多的成员可以返回,因此检查它可能会很棘手。
以下是可能返回的代码/描述列表:
编辑:如果传输出现问题,它应该在您启动流编写器时引发异常。您可以做的是围绕它进行尝试捕获,如果出现问题,您将能够获取状态代码并将其打印到您正在使用的任何日志介质中,这样您就可以看到具体的问题是什么。我已经修改了上面的代码以反映所有这些(仅使用一种传输方式,您可以使用自己的方式)。
于 2009-12-15T14:19:42.087 回答