目前我已经以二进制格式存储在任何类型的 BD 文件中。我在文件上传中做的过程如下:
- 拖放文件和收集被发送到服务器。
- 在服务器中收集每个文件的流。
- 每个流都转换为 byte()
- 它almanancena BD 中的Byte() 正确
现在,是时候下载文件了,它包括在 Byte() 中从数据库中获取数据,并直接从客户那里下载。
问题是我使用的方法不会抛出任何下载窗口,而且我没有犯这个错误。可能的帮助的代理代码。
Protected Sub grdDocumentoByExp_RowCommand(sender As Object, e As GridViewCommandEventArgs)
If e.CommandName = "cmdDownload" Then
Dim context As System.Web.HttpContext = System.Web.HttpContext.Current
Dim lFileName As String = e.CommandName
Dim lFile() As Byte = GetImageArrayBy_docID(e.CommandArgument)
Dim ms As Stream = New MemoryStream(lFile, 0, lFile.Length)
ms.Position = 0
ms.Close()
With context
.Response.Clear()
.Response.ClearHeaders()
.Response.ClearContent()
.Response.ContentType = "image/jpeg"
.Response.AddHeader("content-disposition", "attachment;filename=" & "Fichero1.jpg")
.Response.AddHeader("content-length", lFile.Length)
.Response.BinaryWrite(lFile)
.Response.End()
End With
End If
End Sub
思路如下:一个网格有一列运行一个命令,运行这个代码块。在其中,从数据库中收集 byte ()(内容似乎是正确的),传输到 Stream并作为BinaryWrite通过当前上下文发送,但从不在浏览器中运行任何内容。
使用的客户端是 Firefox 和 Chrome,但它们都没有任何反应。表示我要去的是我们看到的MIME文件,在这种情况下是 jpeg,尽管还有许多其他类型。
谁能知道发生了什么或者我做错了什么?
非常感谢.tiendo。附上代码以获得可能的帮助。