如何从数据库中读取图片,图片存在文件夹中

如何从数据库中读取图片,图片存在文件夹中,第1张

我来回答你吧!我这些天碰到了和你一样的问题,后来我解决了,我给你两种方法。

方法一:图片是直接存在SQL Server中的Image类型中的,你首先新建一个空白的aspx网页,在这个新建的网页的Page_Load()中读出Image,然后用Response.BinaryWrite()函数显示出来,然后在你原来的那个网页中的Image控件的ImageURL属性填那个新建的aspx网页,就是

image1.ImageUrl = "temp.aspx"这样就好了

方法二:数据库存的不是Image字段,而是图片的的地址,然后再Image的ImageURL中填这个地址就行了,直接能显示出来。

我用的第二种方法,在我前几天就这问题感到很迷茫的时候搜了很多资料,假如你还是不清楚就可以跟我说,我这段时间都在线!祝你好运!

你能存进数据库,说明你就能取数据.将取出的数据进行base64_decode,然后再根据文件格式发出一个http head,再直接echo出去.

如:一个jpg的图片.经过header后浏览器就会认为那是一个图片了.

//$db_img 这个是从数据库取出的base64编码格式的二进制图片数据.

$img = base64_decode($db_img)

header("Content-type: image/jpg")

echo $img

其他格式的文件类型就根据实际情况改header里面的Content-type

首先要把数据库里面对应的那个字段读出来 然后进行处理

下面的例子是我从数据库读取图片的

OracleConnection conn = new OracleConnection(connstring)

conn.Open()

label1.Text = "开始时间:" + DateTime.Now

string begin = "数据库连接正常,开始时间" + DateTime.Now

SetInfo("", begin)

string SQL = "select ID from bs_buylicense_attach t where t.file_size>204800 order by t.file_size asc" //rownum<100 and

string ConnString = SQL

OracleDataAdapter sda = new OracleDataAdapter(ConnString, conn)

DataTable table = new DataTable()

sda.Fill(table)

List<object>lst = ModelConvertHelper.DtCovertIList(table)

foreach (object o in lst)

{

string path = "C:\\1.png"

string lst_ID = o.ToString() //查询返回来对应的数据的ID

string filter = "select * from bs_buylicense_attach where ID='" + lst_ID + "'"

OracleCommand cmd = new OracleCommand(filter, conn)

OracleDataReader reader = cmd.ExecuteReader()

while (reader.Read())

{

if (reader["DATA"] != DBNull.Value)

{

string ID = "数据ID对应值ID" + reader["ID"].ToString()

string length = "原文件大小" + reader["FILE_SIZE"].ToString()

SetInfo(ID, length)

System.IO.MemoryStream stream = new System.IO.MemoryStream((byte[])reader["DATA"])//把照片读到MemoryStream里

Image ImageBlob = Image.FromStream(stream, true) //从数据库中读到的图片

int height = ImageBlob.Height //原来图片的高度

int width = ImageBlob.Width//原来图片的宽度

//开始进行图片的压缩

GetPicThumbnail1(ImageBlob, path, height, width, 60)

Image SaveImage = im//得到返回来压缩之后的图片

byte[] buffer = imageToByteArray(SaveImage)

string UpdateSql = "update bs_buylicense_attach set DATA =:image where ID='" + lst_ID + "'"

OracleCommand cd = new OracleCommand()

cd = new OracleCommand(UpdateSql, conn)

cd.CommandText = UpdateSql

cd.Parameters.Add("image", System.Data.OracleClient.OracleType.Blob, buffer.Length).Value = buffer

cd.ExecuteNonQuery()

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

string YAsuo = Convert.ToString(file.Length)

SetInfo("压缩为:", YAsuo)

stream.Close()

stream.Dispose()

file.Dispose()

file.Close()

File.Delete(@path)

}

}

}

conn.Close()

string end = "所有数据执行完毕关闭数据库链接!" + DateTime.Now

SetInfo("", end)

SaveLog()

label2.Text = "结束时间:" + DateTime.Now

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9633613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存