获取文件流的进度



我正在建立一个网站,允许用户上传/下载/删除/管理数据库中的文件。

澄清一下,web应用程序将文件上传到数据库,而不是文件系统。这是因为服务器的限制,我无法控制它。

我使用文件流将文件转换为blob,然后将其粘贴到数据库中。我想知道的是:

是否有可能获得大文件的文件流的进度?看看到目前为止流了多少,或者设置一个计时器来更新这个值?

我的代码如下:
Dim fs As Stream = upload1.PostedFile.InputStream
Dim br As New BinaryReader(fs)
Dim bytes as Byte() = br.ReadBytes(fs.Length)
Dim length As Integer = fs.Length

然后我将"bytes"作为参数添加到我的存储过程中并运行查询。我能添加什么来获取文件流的状态?

我希望这是清楚的,如果不是,我可以澄清。

谢谢!

您可以使用如下代码将一个流复制到另一个流,并在中间插入您的进度代码:

Public Shared Sub Copy(ByVal source As Stream, ByVal destination As Stream, ByVal bufferSize As Integer)
    Dim num As Integer
    Dim buffer As Byte() = New Byte(bufferSize  - 1) {}
    Do While (num = source.Read(buffer, 0, buffer.Length) <> 0)
        destination.Write(buffer, 0, num)
        ' insert progress code here
    Loop
End Sub

相关内容

  • 没有找到相关文章

最新更新