2012-08-14 69 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