从服务器下载文件

从服务器下载文件

问题描述:

目前我已经存储在二进制格式的任何类型的BD文件。我在文件上传过程如下:从服务器下载文件

  1. 拖动&删除文件和收集发送到服务器。
  2. 在服务器中收集每个文件的流。
  3. 每个流在BD转换为字节()
  4. 它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)的长度

+0

。长度是整数。 – amelian 2013-03-05 14:08:55