如何显示从ASP.NET中的数据库中获取的具有固定大小的图像

时间:2012-12-21 23:39:09

标签: c# asp.net image binary-data

数据库中的我的表包含一个类型为:image。

的列

我已设法将图片上传到数据库。

但几乎所有的教程都向我们展示了如何为Image Controller提供一个包含页面名称的URL,以及一个具有数据库中所选行ID的参数

示例:

//Database codes here... (query..etc..)
SqlDataReader myReader = myCommand.ExecuteReader();
if (myReader.HasRows == true)
{
    myReader.Read();
    Response.ContentType = "image/jpg";
    Response.BinaryWrite((byte[])myReader[0]);
    Image1.ImageUrl="User.aspx?imgid=1";
}

所以,当我点击一个应该从数据库中获取此图像的特定按钮,然后将该URL提供给图像,图像将全屏打开..但我不希望这样,让我说我有空的空间在我的页面中有50px宽度和50px高度的图像,如何在这个空间内显示图像?并保留所有其他内容?就像用户页面,个人资料页面一样。

2 个答案:

答案 0 :(得分:3)

您可以使用<img>标签控制图片的显示。所以说获取并显示图像的ASP.NET页面称为ShowImage.aspx?ID=xxx

创建一个名为ShowImageAt50px.aspx的新页面,并在该页面中添加以下标记:

<img src="ShowImage.aspx?ID=xxx" style="width:50px;" alt="" />

现在,当您访问ShowImageAt50px.aspx时,它会显示约50像素宽的图像。

答案 1 :(得分:-1)

将图像存储在文件系统中并使用图像的文件名引用数据库中的图像通常会更容易,也更不容易出错。

我从未想过将图像存储在数据库中的充分理由。

此外,当您想要编辑存储在数据库中的图像时,您将不得不将其从数据库中导出,然后重新导入。