0

現在、あらゆるタイプのバイナリ形式の BD ファイルに保存しています。ファイルのアップロードで行うプロセスは次のとおりです。

  1. ドラッグ アンド ドロップ ファイルとコレクションはサーバーに送信されます。
  2. サーバーでは、各ファイルのストリームを収集します。
  3. 各ストリームはバイト () に変換されます
  4. It almancena 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

アイデアは次のとおりです。グリッドには、コマンドを実行する列があり、このコード ブロックを実行します。その中で、データベースからバイト () を収集し (内容は正しいようです)、 Streamに送信され、現在のコンテキストを介してBinaryWriteとして送信されますが、 browser では何も実行されません。

使用するクライアントは Firefox と Chrome ですが、どちらも何も起こりません。MIMEファイルは、この場合は jpeg ですが、他にも多くの種類があります。

誰が何が起こっているのか、または私が間違っている可能性がありますか?

どうもありがとう.tiendo. 可能なヘルプのコードを添付してください。

4

2 に答える 2

0

lFile.Lenght は INT であるため、問題は型の変換ではありません。問題は、メソッドが UpdatePanel に起動され、これが正しく起動しないことです。

他のページでのダウンロードが正常に機能するようにします。

于 2013-03-09T16:09:54.090 に答える
0

Dim ms As Stream = New MemoryStream(lFile, 0, lFile.Length)

長さを (int) にキャストする

于 2013-03-05T14:01:30.613 に答える