我试图将图像转换为二进制文件,然后存储在数据库中。我有一个代码来执行此操作,在几次Google搜索之后,大多数答案就像我编写的代码一样。我遇到的错误是,我没有在数据库中看到二进制格式,而是将System.byte[]
作为输出。我也调试了并得到了同样的东西。
这是代码的一部分
if (Upload.HasFile)
{
HttpPostedFile postedFile = Upload.PostedFile;
string filename = Path.GetFileName(postedFile.FileName);
string fileExtension = Path.GetExtension(filename);
int filesize = postedFile.ContentLength;
if (fileExtension.ToLower() == ".jpg")
{
Stream stream = postedFile.InputStream;
BinaryReader binaryreader = new BinaryReader(stream);
byte[] bytes = binaryreader.ReadBytes((int)stream.Length);
Debug.WriteLine(bytes);
}
}
我的调试结果以System.byte[]
作为输出。
答案 0 :(得分:0)
您可以将字节数组转换为字符串以进行数据库存储
var storedString = Convert.ToBase64String(bytes);
从存储的字符串中获取字节数组
bytes = Convert.FromBase64String(storedString);
如果你真的想使用二进制格式,你可以查看SoapHexBinary类,特别是Parse()方法和Value属性