不完整上传到ftp

时间:2017-10-25 10:53:23

标签: c# file-upload ftp upload ftpwebrequest

我使用这个CodeProject将我的文件上传到我的ftp服务器,效果很好。这是上传到服务器的代码的一部分:

/* Upload File */
public void upload(string remoteFile, string localFile)
{
    try
    {
        /* Create an FTP Request */
        ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
        /* Log in to the FTP Server with the User Name and Password Provided */
        ftpRequest.Credentials = new NetworkCredential(user, pass);
        /* When in doubt, use these options */
        ftpRequest.UseBinary = true;
        ftpRequest.UsePassive = true;
        ftpRequest.KeepAlive = true;
        /* Specify the Type of FTP Request */
        ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
        /* Establish Return Communication with the FTP Server */
        ftpStream = ftpRequest.GetRequestStream();
        /* Open a File Stream to Read the File for Upload */
        FileStream localFileStream = new FileStream(localFile, FileMode.Open);
        /* Buffer for the Downloaded Data */
        byte[] byteBuffer = new byte[bufferSize];
        int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
        /* Upload the File by Sending the Buffered Data Until the Transfer is Complete */
        try
        {
            while (bytesSent != 0)
            {
                ftpStream.Write(byteBuffer, 0, bytesSent);
                bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
            }
        }
        catch (Exception ex) { Console.WriteLine(ex.ToString()); }
        /* Resource Cleanup */
        localFileStream.Close();
        ftpStream.Close();
        ftpRequest = null;
    }
    catch (Exception ex) { Console.WriteLine(ex.ToString()); }
    return;
}

但是大多数文件在服务器中都是不完整的。例如我的所有文件都是1024KB,但在服务器中大多数都是不完整的,如1019KB,1015KB,1023KB,...

问:上传过程中数据丢失的原因是什么?它与代码或其他东西有关吗?

注意:我已经使用三台ftp服务器进行了测试,连接速度快且稳定。服务器的操作系统是WindowsServer2012R2,本地操作系统是7和8.1和10.防火墙在测试期间关闭。

0 个答案:

没有答案