File upload GDI+中发生一般错误,将非png图像从FileUpLoad FileBytes保存到MemoryStream

File upload GDI+中发生一般错误,将非png图像从FileUpLoad FileBytes保存到MemoryStream,file-upload,gdi+,memorystream,File Upload,Gdi+,Memorystream,我已经从这里为GDI+错误应用了推荐的解决方案: 我仍然不适用于jpeg和jpg文件,但适用于所有png文件 请参见下面我的实际代码: Dim fl = uploader.PostedFile.FileName.ToLower If fl.EndsWith(".png") OrElse fl.EndsWith(".jpeg") OrElse fl.EndsWith(".jpg") Then Using ms = N

我已经从这里为GDI+错误应用了推荐的解决方案:

我仍然不适用于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)