【问题标题】:How do you display an image on webpage using file path stored on a database?如何使用存储在数据库中的文件路径在网页上显示图像?
【发布时间】:2019-09-17 06:05:43
【问题描述】:

我有一个包含所有 SQL 语句的 WCF 服务库。 Windows Forms Admin 应用程序正在更新服务,而 ASP.Net Web Forms 应用程序正在使用服务。

文件路径以字符串形式存储在数据库中,以更改 WinForms 应用程序的图片框中的图像。

我想我可以将 filePath 传递到 ASP.Net 端的字符串变量中,并将其用于Image.Url。它不工作。

最简单的方法是什么?安全不是问题,这只是为了分配。

当用户更改小屋 ID 时,网站上的相应图像应更改。

C#

 protected void BtnID_Click(object sender, EventArgs e)
    {
        int id = Convert.ToInt32(TextBoxID.Text);

            string fileName = ws.GetImage1FileName(id);

            Image1.ImageUrl = fileName;
    }

HTML

 <td class="Column3" colspan="1">
                <asp:Image class="Image" ID="Image1" runat="server"/>
            </td>

TIA!

【问题讨论】:

  • fileName 的值是多少?它是有效的图像路径吗?
  • @BJohn "G:\bigCottage.jpeg"。那是其中之一。 WinForms 应用程序会打开一个 OpenFileDialog 框来获取文件,因此在该侧它在哪里并不重要。 Asp.Net 不一样吗?
  • asp.net 不一样。 Asp.net 用于 Web 应用程序,它不同于 winform 桌面应用程序。您不能使用带盘符的绝对路径。您应该使用诸如 bigCottage.jpeg 或 /bigCottage.jpeg 之类的路径,并确保在 webform 应用程序的根路径中有一个名为 bigCottage.jpeg 的图像。为了安全起见,web应用是面向多用户的,如果你可以通过文件协议访问文件,这意味着一个web应用可以访问每个用户的文件系统,这是不允许的

标签: c# asp.net wcf imageurl


【解决方案1】:

假设您的数据输出为

字符串文件名 = "123.png";

    protected void BtnID_Click(object sender, EventArgs e)
    {
        int id = Convert.ToInt32(TextBoxID.Text);

        string fileName = ws.GetImage1FileName(id);

        Image1.ImageUrl = Server.MapPath("~/images") + "/" + fileName;
    }

在winforms中你可以尝试使用Bitmap

Image1.Image = new Bitmap(YourFileName); 

【讨论】:

  • 我称之为文件名,但我确实将整个路径存储在数据库中并返回它。这适用于WinForms 中的openDialogBox。假设 server.Path 不适用于完整的 filePath?
猜你喜欢
  • 1970-01-01
  • 2020-02-12
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
相关资源
最近更新 更多