Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 使用存储在sql数据库中的文件路径检索图像(就在那里!)_C#_Asp.net_Image - Fatal编程技术网

C# 使用存储在sql数据库中的文件路径检索图像(就在那里!)

C# 使用存储在sql数据库中的文件路径检索图像(就在那里!),c#,asp.net,image,C#,Asp.net,Image,好的,我想我很快就要在这方面取得突破了 我有以下代码,理论上,这些代码应该使用通过sql数据库的文件路径填充图像 public void Image1_Load(object sender, EventArgs e) { ////Code to retrieve logo image from tblMemberLogo - Currently does not work!!! var connectionstring = ConfigurationManager.Connec

好的,我想我很快就要在这方面取得突破了

我有以下代码,理论上,这些代码应该使用通过sql数据库的文件路径填充图像

public void Image1_Load(object sender, EventArgs e)
{
    ////Code to retrieve logo image from tblMemberLogo - Currently does not work!!!

    var connectionstring = ConfigurationManager.ConnectionStrings["PDCConnectionString"].ConnectionString;
    using (var cn = new SqlConnection("Data Source=STRSQL04;Initial Catalog=PDC;Integrated Security=True"))
    using (var cmd = cn.CreateCommand())
    {
        cn.Open();
        cmd.CommandText = "SELECT LogoFilePath FROM tblMemberlogo WHERE MemberID = '123'";
        //cmd.Parameters.Add("123", "5");
        using (var reader = cmd.ExecuteReader())
        {
            if (reader.Read())
            {
                var filepath = reader.GetString(0);
                Image1.ImageUrl = filepath;
                Label2.Text = filepath;
            }
        }
    }
}
现在,当Label2为成员123返回适当的文件路径时,我知道我已经接近了。然而,Image1仍然拥有可怕的红十字。 此图像控件的源代码如下所示

Image ID="Image1" runat="server" Height="71px"  
            Width="400px" onload="Image1_Load"  
我会买任何人帮我完成一个很好的大品脱,因为我在(另一个)崩溃的边缘

请在下面找到输出html


img id=“Image1”src=“文件:c:\online%20reporting\SQL%20Solutions\Member%20Logo\123.GIF”style=“高度:71px;宽度:400px;边框宽度:0px;”

我不确定您的数据是如何存储的,但在大多数情况下,在为服务器端分配图像时,您需要确保其相对于网站

使用以下方法执行此操作:


Image1.ImageUrl=Server.MapPath(filepath)

我不确定您的数据是如何存储的,但在大多数情况下,在为服务器端分配图像时,您需要确保其相对于网站

使用以下方法执行此操作:


Image1.ImageUrl=Server.MapPath(filepath)

根据Url,您可能需要使用ResolveClientUrl或Server.MapPath

Image1.ImageUrl = ResolveClientUrl(filepath);


根据Url的不同,您可能需要使用ResolveClientUrl或Server.MapPath

Image1.ImageUrl = ResolveClientUrl(filepath);


不幸的是,您不能使用“file:”URL作为图像的src。您需要做的是将该路径转换为有效的HTTP URL

因此,如果您的图像位于
“c:\online reporting\SQL Solutions”
,您应该在IIS中的站点根目录下添加一个指向该目录的虚拟目录,可以称之为“/logo”或其他内容,然后您可以:


字符串文件名=Path.GetFileName(reader.GetString(0));
Image1.ImageUrl=“/logos/”+文件名;


如果您的web根目录已经在运行,比如说“c:\online reporting”,那么就更容易了——您可以跳过虚拟目录,只使用“/SQL%20Solutions/”作为URL的开头。

不幸的是,您不能使用“file:”URL作为图像的src。您需要做的是将该路径转换为有效的HTTP URL

因此,如果您的图像位于
“c:\online reporting\SQL Solutions”
,您应该在IIS中的站点根目录下添加一个指向该目录的虚拟目录,可以称之为“/logo”或其他内容,然后您可以:


字符串文件名=Path.GetFileName(reader.GetString(0));
Image1.ImageUrl=“/logos/”+文件名;


如果您的web根目录已经在运行,比如说“c:\online reporting”,那么就更容易了——您可以跳过虚拟目录,只需使用“/SQL%20Solutions/”作为URL的开头。

标签中的文本是什么?您看到过此链接吗(在另一个答案中发布):Hello ck-我刚刚将Label2放入以文本形式显示文件路径。Hello Mitch-感谢该链接,我将很快查看。您可以发布输出HTML吗?标签中的文本是什么?您是否看到此链接(在另一个答案中发布):Hello ck-我刚刚将Label2放入以文本形式显示文件路径。Hello Mitch-感谢该链接,我将很快查看。您可以发布输出HTML吗?我尝试了后者(Server.MapPath(filepath))并收到一个“HttpException未经处理文件:…..”不是有效的虚拟路径。不幸的是,ResolveClientUrl方法给了我一个可怕的红十字。谢谢你的建议。我尝试了后者(Server.MapPath(filepath))并收到了“HttpException未经处理文件:…..”不是有效的虚拟路径。不幸的是,ResolveClientUrl方法给了我一个可怕的红十字。不过谢谢你的建议。Grr,我不知道为什么代码示例不能用两行。我永远无法让代码插入正常工作!我明白你说的话,我会试试看…谢谢rusty。你好rusty…对不起…我很胖(这是全新的)你能告诉我怎么做吗?所以如果你的图片在“c:\online reporting\SQL Solutions”中,你应该在你的网站根目录下的IIS中添加一个虚拟目录,指向那里“当然,虚拟目录只是一个目录,IIS使它看起来像是web目录的一部分,但实际上它存在于其他地方。因此,如果我的web目录是c:\web,并且存在目录c:\web\images,那么对于URL/images,IIS将在c:\web\images中查找。但是,假设您的映像在c:\temp中,您可以设置IIS,这样当有人转到/images时,IIS将在c:\temp而不是c:\web\temp中查找—这是一个虚拟目录。这里有更多信息:Grr,我不知道为什么代码示例不能用两行。我永远无法让代码插入正常工作!我明白你说的话,我会试试看…谢谢rusty。你好rusty…对不起…我很胖(这是全新的)你能告诉我怎么做吗?所以如果你的图片在“c:\online reporting\SQL Solutions”中,你应该在你的网站根目录下的IIS中添加一个虚拟目录,指向那里“当然,虚拟目录只是一个目录,IIS使它看起来像是web目录的一部分,但实际上它存在于其他地方。因此,如果我的web目录是c:\web,并且存在目录c:\web\images,那么对于URL/images,IIS将在c:\web\images中查找。但是,假设您的映像在c:\temp中,您可以设置IIS,这样当有人转到/images时,IIS将在c:\temp而不是c:\web\temp中查找—这是一个虚拟目录。更多信息请点击此处: