2012-08-14 72 views
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 

回答

0

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

试试这个,

Dim bindata() As Byte = dsFiles.Tables(0).Rows(0).Item("FileData") 
Response.ContentType = "image/png" 
Response.BinaryWrite(bindata) 
Response.Flush() 
Response.End() 
+0

感谢完美的作品 – rahul 2012-08-14 12:50:44