File.WriteAllBytes(@"c:\yourfile", Convert.FromBase64String(yourBase64String));//将base64编码转成图片(亲测好用,很赞!)
读取mysql blob类型的字段
while (reader.HasRows) { if (reader.Read()) { //读取blob类型的字段 long len = reader.GetBytes(3, 0, null, 0, 0);//3为blob字段的索引(索引从0开始算) byte[] buffer = new byte[len]; len = reader.GetBytes(3, 0, buffer, 0, (int)len); string content = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length); File.WriteAllBytes(path + DateTime.Now.Ticks.ToString() + ".jpeg", Convert.FromBase64String(content));//将base64转成图片 } else { break; } }
网上常见的解决方法:
参考:https://www.cnblogs.com/vaevvaev/p/6922994.html
/// <summary> /// 字节数组生成图片 /// </summary> /// <param name="Bytes">字节数组</param> /// <returns>图片</returns> private Image byteArrayToImage(byte[] Bytes) { using (MemoryStream ms = new MemoryStream(Bytes)) { Image outputImg = Image.FromStream(ms); return outputImg; } }
但是这个方法,个人感觉不好用,好像会出现异常,System.ArgumentException: 参数无效。
目前使用的是第一种方案,一行代码就OK了。
对于第二种方案,有哪位大佬知道其解决方法,请留言告知,谢谢!