0

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

澄清一下,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

然后我将“字节”作为参数添加到我的存储过程并运行查询。我可以添加什么来获取文件流的状态?

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

谢谢!

4

1 回答 1

0

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

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
于 2013-04-19T18:18:17.460 回答