上传的图片可以存到FileServer,也可以存到Database,
存在FileServer简单方便,但是安全性有欠缺,而且如果FileServer有改变,很多的Rowdata也有可能跟着改变。
存在Database的话,有点繁琐,但是安全性,和以后的迁移九方便多了,但是这就要求DB够大。
这里分享下img存入Database的方法,Function:
using System.Data.SqlClient
using System.IO;
1.将Image图像文件存入到数据库中
1 2 3 4 5 6 7 8 9 10 |
//CS程序,文件的绝对路径 public byte[] SetImageToByteArray(string fileName) { FileStream fs = new FileStream(fileName, FileMode.Open); int streamLength = (int)fs.Length; byte[] image = new byte[streamLength]; fs.Read(image, 0, streamLength); fs.Close(); return image; } |
1 2 3 4 5 6 7 8 9 |
//在ASP.NET中通过FileUpload控件 public byte[] SetImageToByteArray(FileUpload FileUpload1) { Stream stream = FileUpload1.PostedFile.InputStream; byte[] photo = new byte[FileUpload1.PostedFile.ContentLength]; stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength); stream.Close(); return photo; } |
2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件
1 2 3 4 5 6 7 8 9 10 11 12 |
public byte[] SetImage(SqlDataReader reader) { return (byte[])reader["Image"];//Image为数据库中存放Image类型字段 } public Image SetByteToImage(byte[] mybyte) { Image image; MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length); image = Image.FromStream(mymemorystream); return image; } |