2013-02-03 199 views
0

我想上傳一個文件到我的FTP服務器和憑據的值是userlabel passlabel和servlabel這些都是相應的證書標籤.. Passlabel和userlabel實際上是混合起來..通過用戶和用戶標籤是密碼。我想實施一個prgressbar,我不知道該怎麼做,請別人幫助Progressbar上傳到FTP

這是我的代碼到目前爲止。

Private Sub BW_DoWork(ByVal sender As System.Object, 
         ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BW.DoWork 

    Dim clsRequest As System.Net.FtpWebRequest = _ 
      DirectCast(System.Net.WebRequest.Create(ServLabel.Text & 
                TextBox1.Text), 
                System.Net.FtpWebRequest) 

    clsRequest.Credentials = New System.Net.NetworkCredential(PassLabel.Text, UserLabel.Text) 
    clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile 

    ' read in file... 
    Dim bFile() As Byte = System.IO.File.ReadAllBytes(txtFile.Text) 

    ' upload file... 
    Dim clsStream As System.IO.Stream = _ 
     clsRequest.GetRequestStream() 

    clsStream.Write(bFile, 0, bFile.Length) 
    clsStream.Close() 
    clsStream.Dispose() 

    BW.ReportProgress(clsStream.Position.ToString) 

    MsgBox("File Is Now In Database", MsgBoxStyle.OkOnly, "Upload Complete") 

End Sub 

回答

0

你只能在陣列bFile的一部分傳遞給clsStream.Write()方法和重複,直到所有部分已經寫入流。

PartsCount = 100 

PartsLength = bFile.Length \ PartsCount  
If PartLength * PartsCount = bFile.Length Then PartsCount -= 1 

For i as Integer = 0 to PartsCount 
    If i <> PartsCount Then 
     clsStream.Write(bFile, i * PartsLength, PartLength) 
    Else 
     clsStream.Write(bFile, i * PartsLength, bFile.Length - (i * PartsLength)) 
    End If 

    clsStream.Flush() 

    'calculate the progess here 
Next 

clsStream.Close() 
+0

在所有的PartsCount和PartsLength下有錯誤? – Kraxed

+0

是否聲明變量? 'Dim PartsCount,PartLength as Integer' – alu