GDI+ 中发生一般性错误,将非 png 图像从 Fileupoad FileBytes 保存到 MemoryStream
A generic error occurred in GDI+, Saving non png image from Fileupoad FileBytes to MemoryStream
我已经应用了此处推荐的 GDI+ 错误解决方案:
A generic error occurred in GDI+, JPEG Image to MemoryStream
我仍然不适用于 jpeg 和 jpg 文件,但适用于所有 png
查看下面我的实际代码:
Dim fl = uploader.PostedFile.FileName.ToLower
If fl.EndsWith(".png") OrElse fl.EndsWith(".jpeg") OrElse fl.EndsWith(".jpg") Then
Using ms = New MemoryStream(uploader.FileBytes)
Using i = Drawing.Image.FromStream(ms)
i.Save(ms, If(fl.EndsWith(".png"), System.Drawing.Imaging.ImageFormat.Png, System.Drawing.Imaging.ImageFormat.Jpeg))
Dim sig = Convert.ToBase64String(ms.ToArray())
Dim code = Trim(txtStaff.Text).PadLeft("00000000")
DB.rw_signature_save(code, sig)
End Using
End Using
BuildSignatureList()
statusBox.Attributes("class") = "notification success"
statusBox.InnerHtml = "Signature updated succesfully"
Else
statusBox.Attributes("class") = "notification warning"
statusBox.InnerHtml = "Only <b>Image</b> ( <font color='green'>.png, .jpg </font> ) files allowed."
End If
请问除了上述链接之外,还有其他解决方案吗?
谢谢
才发现这其实完全没有必要。
我可以直接从 uploader.FileBytes 转到 Convert.ToBase64String
Dim sig = Convert.ToBase64String(uploader.FileBytes)
我已经应用了此处推荐的 GDI+ 错误解决方案:
A generic error occurred in GDI+, JPEG Image to MemoryStream
我仍然不适用于 jpeg 和 jpg 文件,但适用于所有 png
查看下面我的实际代码:
Dim fl = uploader.PostedFile.FileName.ToLower
If fl.EndsWith(".png") OrElse fl.EndsWith(".jpeg") OrElse fl.EndsWith(".jpg") Then
Using ms = New MemoryStream(uploader.FileBytes)
Using i = Drawing.Image.FromStream(ms)
i.Save(ms, If(fl.EndsWith(".png"), System.Drawing.Imaging.ImageFormat.Png, System.Drawing.Imaging.ImageFormat.Jpeg))
Dim sig = Convert.ToBase64String(ms.ToArray())
Dim code = Trim(txtStaff.Text).PadLeft("00000000")
DB.rw_signature_save(code, sig)
End Using
End Using
BuildSignatureList()
statusBox.Attributes("class") = "notification success"
statusBox.InnerHtml = "Signature updated succesfully"
Else
statusBox.Attributes("class") = "notification warning"
statusBox.InnerHtml = "Only <b>Image</b> ( <font color='green'>.png, .jpg </font> ) files allowed."
End If
请问除了上述链接之外,还有其他解决方案吗? 谢谢
才发现这其实完全没有必要。 我可以直接从 uploader.FileBytes 转到 Convert.ToBase64String
Dim sig = Convert.ToBase64String(uploader.FileBytes)