Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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# 用c在asp.net中显示二进制图像#_C#_Asp.net_Image_Varbinary - Fatal编程技术网

C# 用c在asp.net中显示二进制图像#

C# 用c在asp.net中显示二进制图像#,c#,asp.net,image,varbinary,C#,Asp.net,Image,Varbinary,所以我有这个方法: string sql = string.Format("EXECUTE getPlayerImage @playerID = '{0}'", bio.playerID); SqlCommand cm = baseballConnection.CreateCommand(); baseballConnection.Open(); cm.CommandText = sql; baseballConnection.Close();

所以我有这个方法:

    string sql = string.Format("EXECUTE getPlayerImage @playerID = '{0}'", bio.playerID);


    SqlCommand cm = baseballConnection.CreateCommand();

    baseballConnection.Open();
    cm.CommandText = sql;
    baseballConnection.Close();
    return cm.ExecuteScalar() as byte[];
它是有效的,至少我没有错误。但是现在我只有一个字节数组,我怎么能在屏幕上显示它呢?我在屏幕上有一个图像工具,但我知道如何显示图像的唯一方法是它是否保存在服务器上并具有文件路径。我不知道如何将字节数组保存到服务器上,但那将是对它的切磋,而且我已经在db中将图像保存为varbinary并正在检索它是没有意义的


如何显示此字节数组

您是否尝试过Response.BinaryWrite


要在asp.net中呈现图像,必须创建asp.net页面或通用处理程序,以在输出响应流中保存字节

然后将HTML图像或控件设置为链接到页面或通用处理程序

比如说,

<img src="getimage.aspx?id=1" style="width:100px; height:100px" alt="" />
以下是一个链接:

我宁愿让服务器从硬盘传输文件,也不愿让服务器启动臃肿的asp.net生命周期,访问数据库,通过内存传递数据,然后传输文件。我明白。我只是想看看我能不能做到。我已经走了这么远,我知道这很容易,但尽管如此,我还是希望看到这一切成功
using System.Web;

namespace ImageUtil
{
    public class ImageProvider : IHttpHandler
    {
        publicvoid ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "image/jpeg";

            string sql = string.Format("EXECUTE getPlayerImage @playerID = '{0}'", bio.playerID);

            SqlCommand cm = baseballConnection.CreateCommand();
            baseballConnection.Open();
            cm.CommandText = sql;
            byte[] img = (byte[])cm.ExecuteScalar();
            baseballConnection.Close();

            context.Response.BinaryWrite(img);
        }

        publicbool IsReusable
        {
            get
            {
                returnfalse;
            }
        }
    }
}