从服务器下载文件
问题描述:
目前我已经存储在二进制格式的任何类型的BD文件。我在文件上传过程如下:从服务器下载文件
- 拖动&删除文件和收集发送到服务器。
- 在服务器中收集每个文件的流。
- 每个流在BD转换为字节()
- 它almancena的字节()正确
现在,它的时间来下载文件,其中包括在字节从数据库中获取的数据( ),并直接从客户处下载。
问题是我使用的方法不会抛出任何下载窗口,我不会犯这个错误。可能帮助的代码。
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
的想法是如下: 网格具有运行的命令列,运行该代码块。 其中,收集来自数据库的字节()(其内容看起来是正确的),被发送到流,并通过当前上下文作为BinaryWrite发送,但从不在浏览器中运行任何内容。
使用的客户端是Firefox和Chrome,但没有任何事情发生。指示我按照我们所看到的MIME文件(在本例中为jpeg),但也有许多其他类型。
任何人都可以知道发生了什么,或者我可以做错吗?
非常感谢you.tiendo。附上可能的帮助代码。
答
存在的问题是不类型的转换,因为lFile.Lenght它的INT 。问题在于它启动到UpdatePanel的方法,并且不能正确启动。
在其他网页下载工作正常。
答
昏暗毫秒作为物流=新的MemoryStream(lFile,0,lFile.Length)
投射到(INT)的长度
。长度是整数。 – amelian 2013-03-05 14:08:55