本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html

.将Image图像文件存入到数据库中

我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.

复制代码
//将本地图片转换成二进制保存起来
private byte[] SetImageToByteArray(string fileName)
{
FileStream fs = null;
try
{
fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
Bitmap bt = new Bitmap(fs);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, , streamLength); return image;
}
catch (Exception)
{ throw; }
finally
{ fs.Close();
}
} 复制代码 复制代码 //根据文件名(完全路径)
public byte[] SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, , streamLength);
fs.Close();
return image;
} //另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte[] SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];
stream.Read(photo, , FileUpload1.PostedFile.ContentLength);
stream.Close();
return photo;
} 复制代码 .从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件 复制代码 //将数据库中的Image类型转换成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
} //将byte[]转换成Image图像类型
//加载以下命名空间using System.Drawing;/using System.IO;
using System.Data.SqlClient;
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
} 复制代码 这种方式保存图片比较安全 大致的步骤,就是我们首先要获得文件的路径,无论是通过上传控件和文本框,还是手动输入等,只要能获得路径就可以了 然后我们就可以利用上面的方法,将文件资源转换为二进制放到数据库里,数据库字段可以使用image类型,或者字符串,到时候转换下就可以了 最后我们就可以从数据库中读取字节,转换成image,或者以流的方式输出图片都可以了(这种一般用于asp.net输入图片) asp.net输入流的代码如下: 复制代码 protected void Page_Load(object sender, EventArgs e)
{
byte[] bb = SetImageToByteArray("E:\\regedit.jpg");
System.Drawing.Image img = ReturnPhoto(bb);
//设定输出文件的类型
Response.ContentType = "image/jpg";
//输出图片文件二进制数据
Response.BinaryWrite(bb);
} 复制代码 如果是winForm就可以直接通过转换过的image赋值就可以了 byte[] bb = SetImageToByteArray(textBox1.Text);
System.Drawing.Image img = ReturnPhoto(bb);
pictureBox1.Image = img;

最新文章

  1. jar war
  2. 【PHP面向对象(OOP)编程入门教程】5.如何实例化对象?
  3. IAR EW8051-8.10.4安装及破解方法
  4. centos7下快速安装mysql
  5. QCopChannel的用法
  6. 关于Base64编码
  7. 对 Linux 新手非常有用的 20 个命令
  8. Sqlserver 安装
  9. js 数组 var arr=[] 的用法总结
  10. iOS 之 绘图简介
  11. C# 后台通过网络地址访问百度地图取回当前在地图上的经纬度,并将取回的复杂Json格式字符串反序列化(Newtonsoft.Json)
  12. 剑指offer:链表中倒数第k个结点
  13. 多个vlan之间路由
  14. Linux 命令整理 (有不正确的随时补充)
  15. 在保存Bitmap的时候出现“GDI出现一般性错误”
  16. Mysql for Linux安装配置之—— rpm(bundle)安装
  17. 静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了。
  18. PostThreadMessage
  19. modelsim编译Xilinx器件库的另一种方法(节省时间)
  20. Mysql ON子句和USING子句

热门文章

  1. C标签判断两个值是否相等
  2. 强制JSP页面刷新,防止被服务器缓存(可用于静态include强制刷新)
  3. win7下IIS配置MVC项目
  4. MVC文件夹
  5. asp.net mvc int[] 和 string[] 自定义数组绑定
  6. Wcf for wp8 使用iis Express 承载Wcf服务部署发布网站(三)
  7. 5个让你的SaaS应用大卖的技巧
  8. Struts2的@ResultPath
  9. Codeforces Round #313 (Div. 2) D. Equivalent Strings
  10. 文件的存储读写,XML文件的存储与读写