我正在使用以下代码 (C# .NET 3.5) 上传文件:
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://someweb.mn/altanzulpharm/file12.zip");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.KeepAlive = true;
request.UseBinary = true;
request.Credentials = new NetworkCredential(username, password);
FileStream fs = File.OpenRead(FilePath);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = request.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
但是当互联网中断时上传中断。中断发生的时间非常短,几乎是一毫秒。但是上传永远中断!
是否可以在网络中断后继续或恢复上传?
最佳答案
我不相信 FtpWebRequest 支持在失去连接后重新连接。您可以从给定位置恢复上传如果服务器支持(这种支持不是必需的,而且重试下载可能不太常见)。
您需要设置 FtpWebRequet.ContentOffset上传。文章中的部分示例:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.ContentOffset = offset;
FTP 协议(protocol)本身恢复的内部细节 - RFC959: 3.5 - Error recovery and restart .显示下载重试代码的问题 - Downloading from FTP with c#, can't retry when fail
关于c# - 如何在互联网中断后继续或恢复 FTP 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41779788/