Wie können wir zeigen Fortschrittsbalken für den upload mit FtpWebRequest

Ich bin das hochladen von Dateien auf den ftp mit FtpWebRequest. Ich brauche, um den status anzuzeigen, wie viel getan wird.

Bisher mein code ist:

public void Upload(string filename, string url)
{
    FileInfo fileInf = new FileInfo(filename);
    string uri = "ftp://" + url + "/" + fileInf.Name;
    FtpWebRequest reqFTP;
    //string uri = "ftp://" + Host + "/public_html/testing/blogtest/" + fileInf.Name;

    //Create FtpWebRequest object from the Uri provided
    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));

    //Provide the WebPermission Credintials
    reqFTP.Credentials = new NetworkCredential(Username, Password);

    //By default KeepAlive is true, where the control connection is not closed
    //after a command is executed.
    reqFTP.KeepAlive = false;
    //reqFTP.UsePassive = true;
    //Specify the command to be executed.
    reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

    //Specify the data transfer type.
    reqFTP.UseBinary = true;

    //Notify the server about the size of the uploaded file
    reqFTP.ContentLength = fileInf.Length;

    //The buffer size is set to 2kb
    int buffLength = 2048;
    byte[] buff = new byte[buffLength];
    int contentLen;

    //Opens a file stream (System.IO.FileStream) to read the file to be uploaded
    FileStream fs = fileInf.OpenRead();

    //Stream to which the file to be upload is written
    Stream strm = reqFTP.GetRequestStream();

    //Read from the file stream 2kb at a time
    contentLen = fs.Read(buff, 0, buffLength);

    //Till Stream content ends
    while (contentLen != 0)
    {
        //Write Content from the file stream to the FTP Upload Stream
        strm.Write(buff, 0, contentLen);
        contentLen = fs.Read(buff, 0, buffLength);
    }

    //Close the file stream and the Request Stream
    strm.Close();
    fs.Close();
}

InformationsquelleAutor Afnan Bashir | 2011-06-14

Schreibe einen Kommentar