0

我收到错误
在线 GDI+ 中发生一般错误

bit.Save(str, Imaging.ImageFormat.Png)

请帮助我这是我的完整代码

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If IsNothing(Request.QueryString("id")) = False Then
                If Val(Request.QueryString("id")) > 0 Then
                    Dim dsFiles As New DataSet

                    dsFiles = oFileData.GetFile(Val(Request.QueryString("id")))
                    Dim bindata() As Byte = dsFiles.Tables(0).Rows(0).Item("FileData")
                    Dim str As New MemoryStream
                    str.Write(bindata, 0, dsFiles.Tables(0).Rows(0).Item("FileSize"))
                    Dim bit As Bitmap = New Bitmap(str)
                    Response.ContentType = ".png"
                    bit.Save(str, Imaging.ImageFormat.Png)
                    str.WriteTo(Response.OutputStream)
                    str.Close()
                Else
                    Response.Write("<script language=""javascript"" type=""text/javascript"">window.close();</script>")
                End If
            Else
                Response.Write("<script language=""javascript"" type=""text/javascript"">window.close();</script>")
            End If
        End Sub
4

1 回答 1

0

可能有很多原因——可能是字节数组的内容不是有效的图像数据。事实上,无需创建BitmapMemoryStream写入图像数据/字节到响应流。

试试这个,

Dim bindata() As Byte = dsFiles.Tables(0).Rows(0).Item("FileData")
Response.ContentType = "image/png"
Response.BinaryWrite(bindata)
Response.Flush()
Response.End()
于 2012-08-14T12:31:52.957 回答