sqlserver mysql 数据类型_被人忽视的sqlserver数据类型

SqlServer 中有一种数据类型是 Image ,用来存储图片大小不超过 2g 的图片,将图片转换为二进制!缺点是占用了很大的数据存储空间。但是现对于之前的存储物理路径来说读取图片和存储图片方便了很多。 那么图片在 MVC 程序中是如何存入数据库,并从数据库显示

SqlServer中有一种数据类型是Image,用来存储图片大小不超过2g的图片,将图片转换为二进制!缺点是占用了很大的数据存储空间。但是现对于之前的存储物理路径来说读取图片和存储图片方便了很多。

那么图片在MVC程序中是如何存入数据库,并从数据库显示到页面上的呢:

下面是一个简单的小例子:

private string sqlconn = "Data Source=;Initial Catalog=Image;Persist Security Info=True;User ID=sa;Password=123456";

//

// GET: /UpDownload/

public ActionResult Index()

{

return View();

}

[HttpPost]

[ValidateInput(false)]

public bool Upload(HttpPostedFileBase[] fileToUpload)

{

string path = "";

try

{

//TODDO:读取任何地方的路径

foreach (HttpPostedFileBase file in fileToUpload)

{

path = System.IO.Path.Combine(Server.MapPath("~/"), "uploadimage\\" + System.IO.Path.GetFileName("00" + file.FileName.Substring(file.FileName.LastIndexOf("."))));

//写入数据库

file.SaveAs(path);

//将需要存储的图片读取为数据流

FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);

Byte[] imgbtye = new byte[fs.Length];

fs.Read(imgbtye, 0, Convert.ToInt32(fs.Length));

fs.Close();

using (SqlConnection conn = new SqlConnection(sqlconn))

{

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandText = "insert into T_TeacherImage(TeacherImage) values(@imgfile)";

SqlParameter par = new SqlParameter("@imgfile", SqlDbType.Image);

par.Value = imgbtye;

cmd.Parameters.Add(par);

cmd.ExecuteNonQuery();

}

}

return true;

}

catch

{

return false;

}

}

#region 读取文件直接显示到视图上

public void Read()

{

byte[] MyData = new byte[0];

using (SqlConnection conn = new SqlConnection(sqlconn))

{

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandText = "select TeacherImage from T_TeacherImage where id='1'";

SqlDataReader sdr = cmd.ExecuteReader();

sdr.Read();

MyData = (byte[])sdr["TeacherImage"];

Response.ContentType = "image/gif";

Response.BinaryWrite(MyData);

conn.Close();

}

}

#endregion那么图片又是如何显示到网页上的呢,很简单:

if (xhr.readyState == 4 && xhr.status == 200) {

$('#personimg').attr("src", "http://localhost:55576/UpDownload/Read");

}

这个demo的实现环境是MVC,图片的获取路径是,当前服务主机地址/controller/action

怎么样,sqlserver为图片的读写,提供了很多方便之处吧!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值