Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET中显示从数据库中获取的固定大小的图像_C#_Asp.net_Image_Binary Data - Fatal编程技术网

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

C# 如何在ASP.NET中显示从数据库中获取的固定大小的图像,c#,asp.net,image,binary-data,C#,Asp.net,Image,Binary Data,数据库中的“我的表”包含一个类型为:image的列 我已设法将图像上载到数据库 但几乎所有的教程都向我们展示了如何为图像控制器提供一个URL,其中包含页面名称,以及一个参数,该参数具有数据库中选定行的ID 例如: //Database codes here... (query..etc..) SqlDataReader myReader = myCommand.ExecuteReader(); if (myReader.HasRows == true) { myReader.Read()

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

我已设法将图像上载到数据库

但几乎所有的教程都向我们展示了如何为图像控制器提供一个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高的图像的空白空间,我如何在这个空间中显示图像?保留所有其他内容?就像用户页面一样,配置文件页面。

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

我从来没有找到在数据库中存储图像的好理由


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

您可以使用


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

我将图像分为两类。存储在文件夹中的公共图像。(易于使用)私人图像,我认为我应该上传到数据库中的用户特定图像,以防止其他用户直接访问它们。我错了吗?如果您给您的私人图像提供了一个随机字符的文件名,例如RTWQ2312.jpg,那么如何找到这些字符?随机字符与否,它们不会存储在文件夹中吗?他们不能访问此文件夹吗?他们不能列出文件夹的内容。除非您在web服务器上设置的权限不正确,否则在db vs文件系统中存储图像有其优点和缺点。任何声称一种方法是对的人都是错的。这几乎是一样的,你只是不制作它们的缩略图。这是从数据库获取和显示图像的“官方”方式吗?是的。如果您正在使用ASP.NET WebFras,请考虑使用标签,但不管怎样,结果是一个带有对ASP.NET页面的引用的标签,该页面获取并返回DB中的图像内容。
<img src="ShowImage.aspx?ID=xxx" style="width:50px;" alt="" />