我在我的MVC Web应用程序中浏览并上传了一个png / jpg文件。我已将此文件存储为byte []在我的数据库中。现在,我想读取并将byte []转换为原始文件。我该如何实现?
我在我的MVC Web应用程序中浏览并上传了一个png / jpg文件。我已将此文件存储为byte []在我的数据库中。现在,我想读取并将byte []转换为原始文件。我该如何实现?
Image.FromStream
从流中读取图像。theImg.Save("theimage.jpg", ImageFormat.Jpeg)
方法,将图像保存为JPEG格式。请记得引用System.Drawing.Imaging命名空间,并使用using
块来处理流。
从数据库中的byte[]数组创建内存流,然后使用Image.FromStream。
byte[] image = GetImageFromDatabase();
MemoryStream ms = new MemoryStream(image);
Image i = Image.FromStream(ms);
你可能在DotNet Core 3.0或更高版本上遇到了上述解决方案的问题,
我的解决方案是:
using(var ms = new MemoryStream(yourByteArray)) {
using(var fs = new FileStream("savePath", FileMode.Create)) {
ms.WriteTo(fs);
}
}
或者只需使用以下代码:
System.IO.File.WriteAllBytes(string path, byte[] bytes)
File.WriteAllBytes(String, Byte[]) 方法 (System.IO) | Microsoft Docs
该方法将指定的字节数组写入到指定的文件中,如果文件不存在,则创建该文件。
File.WriteAllBytes()
或其他方法将字节数组的内容直接写入文件即可。 - CodeCaster