【问题标题】:How to display the particular ID image from the server folder如何显示服务器文件夹中的特定 ID 图像
【发布时间】:2012-10-10 08:38:52
【问题描述】:

图像文件名通过添加vendorID 来存储,如“200018hari”。下图显示了filename存储在Cmp_DocPath列中的表。

当用户从下拉列表中选择vendorID 时,我想显示服务器文件夹“D:\Upload\Commerical Certificates”中的特定VendorID 图像。(图片不会显示带有下拉列表。)

我在内联代码中尝试此操作,但图像不显示。但是我知道如果用户从下拉列表中选择其他VendorID,这对我没有帮助。

我将如何使用 C# 中的代码隐藏?

 <asp:Image ID="Image1" runat="server" Height="400px" Width="400px" 
    ImageUrl ="AdminCompanyInfo.aspx?FileName=~/Upload/Commerical Certificates/200027mcp.png"/>

【问题讨论】:

  • 如果客户端可以在服务器上定义他想要下载内容的路径,这对我来说听起来像是一个安全问题。 (那么下载你的 web.config 怎么样?)
  • 客户端只是使用文件上传上传图像。我在 IIS 中创建了虚拟路径并给出了存储上传图像的路径。所以客户端没有定义服务器的路径。我需要 C# 代码从文件夹中检索图像以显示在屏幕上。

标签: c# asp.net .net sql-server sql-server-2008-r2


【解决方案1】:

如果您尝试获取与 VendorID 关联的图像 (Cmp_DocPath),则需要使用 Generic Handler。以下应该是Generic Handler的技术。

  1. Generic Handler会从数据库中读取图片名称
  2. 之后它将图像文件读入二进制数组
  3. 之后它将写入数组以响应请求。

那一定行得通。

【讨论】:

  • code formatting 风格似乎是very 流行的in 印度,这些days
  • @UweKeim :: 你是什么意思?
【解决方案2】:

在朋友的建议下,我将图片存储在物理路径“D:\Upload”中的代码修改了,将上传的图片存储在“D:\inetpub\wwwroot\”中。最后,在 IIS 中创建虚拟目录,并将“D:\inetpub\wwwroot\Upload”作为物理路径。下面的 C# 代码从虚拟路径中检索图像。

      private void CallImage()
      {
       SqlConnection SqlCon = new SqlConnection(GetConnectionString());
       SqlCon.Open();
       string query = "SELECT FilePath FROM CompanyInfo 
              WHERE VendorID= '" + ddlVendorID.SelectedValue + "'";
       SqlCommand SqlCmd = new SqlCommand(query, SqlCon);
       SqlDataAdapter da = new SqlDataAdapter(SqlCmd);
       DataTable dt = new DataTable();
       da.Fill(dt);
       string ImageName = Convert.ToString(dt.Rows[0][0].ToString());
       Image1.ImageUrl = ("~\\Upload\\Commerical Certificates\\" + ImageName);
       SqlCon.Close();
     }

【讨论】:

  • 如何保护图像免受未经授权的访问?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多