我能做些什么来增加通过FTP正确传输文件的机会吗
本文关键字:传输 文件 机会 FTP 做些什么 增加 | 更新日期: 2023-09-27 18:19:47
我正在使用下面的命令将压缩(.zip)文件传输到测试FTP服务器。这至少适用于小文件。但在手动尝试了一个大文件(也就是用工具)后,我发现真正的目标FTP存在问题,因为这些文件总是被损坏(因此无法再提取)。
由于我需要传输的数据至关重要,我的问题是:我能做些什么来增加我正在传输的文件正确传输(又称未损坏)的机会吗?
这里需要注意的是:我测试下面代码的小文件大小只有1-3MB,而我很快需要传输的大文件大小为110-200MB
还有一点需要补充的是,我不确定在传输过程中字节"下降"(即0变为1)的可能性有多大,反之亦然。因此,使这种可能性降低的事情也将是寻找的要点之一。如果可能的话
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(String.Format("{0}/{1}", ftpUrl, ftpFileName));
ftpRequest.UsePassive = false;
ftpRequest.UseBinary = true;
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpRequest.Credentials = ftpCredentials;
int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int contentlength;
using (FileStream originalStream = (new FileInfo(compressedFile)).OpenRead())
{
try
{
using (Stream targetStream = ftpRequest.GetRequestStream())
{
contentlength = originalStream.Read(buffer, 0, bufferLength);
while (contentlength != 0)
{
targetStream.Write(buffer, 0, contentlength);
contentlength = originalStream.Read(buffer, 0, bufferLength);
}
}
}
catch (Exception ex)
{
-----
}
}
除了这句话,代码对我来说还可以。
targetStream.Write(缓冲区,0,内容长度)
在这里,您需要检查"实际写入了多少字节;写";。如果写入的字节数小于countlength,则应写入剩余数据。我建议您为contentlength和
添加调试打印Write函数实际写入的字节数。