3

現在、私は次の機能を持っています:

Private Function uploadFile(ByVal fileName As String)
    Dim data() As Byte = IO.File.ReadAllBytes(fileName)
    Dim base64String = System.Convert.ToBase64String(data)
    Dim uploadURL As String = "http://192.168.0.7/upload.php"
    Try
        Using client As New Net.WebClient
            Dim reqParm As New Specialized.NameValueCollection
            reqParm.Add("body", base64String)
            Dim responsebytes = client.UploadValues(uploadURL, "POST", reqParm)
            Dim responsebody = (New Text.UTF8Encoding).GetString(responsebytes)
        End Using
    Catch ex As System.Net.WebException
        MsgBox(ex.Message)
    Finally
            '
    End Try
End Function

これにより、http 要求でファイルの内容が base64 でエンコードされた文字列として送信されます。進行状況を監視できるようにプログレスバーを追加したいと思います。Java を使用すると、リクエストの出力ストリームに一度に 1 バイトを追加するときに送信バイト カウンターをインクリメントすることで、これを実装できます。VB.net で同じオプションを使用できますか、それとも別のオプションを使用できますか? ご意見ありがとうございます

4

1 に答える 1

1

UploadValuesAsyncイベント ハンドラUploadProgressChangedとを使用してリッスンできますUploadValuesCompleted

サンプルコード:

Private Sub UploadProgressChanged(ByVal sender As Object, ByVal e As Net.UploadProgressChangedEventArgs)
    ' The progress is updated
    ProgressBar1.Value = e.ProgressPercentage
End Sub

Private Sub UploadValuesCompleted(ByVal sender As Object, ByVal e As Net.UploadValuesCompletedEventArgs)
    Dim responsebytes = e.Result
    Dim responsebody = (New System.Text.UTF8Encoding).GetString(responsebytes)
    ' Do whatever you want
    MsgBox(responsebody)
End Sub

Private Function uploadFile(ByVal fileName As String) As Boolean
    Dim data() As Byte = IO.File.ReadAllBytes(fileName)
    Dim base64String = System.Convert.ToBase64String(data)
    Dim uploadURL As String = "http://192.168.0.7/upload.php"
    Try
        Using client As New Net.WebClient
            Dim reqParm As New Specialized.NameValueCollection
            reqParm.Add("body", base64String)
            AddHandler client.UploadProgressChanged, AddressOf UploadProgressChanged
            AddHandler client.UploadValuesCompleted, AddressOf UploadValuesCompleted
            client.UploadValuesAsync(New System.Uri(uploadURL), "POST", reqParm)
        End Using
    Catch ex As System.Net.WebException
        MsgBox(ex.Message)
    Finally
        '
    End Try
    Return True
End Function
于 2012-11-11T03:44:43.427 に答える