如何显示服务器文件夹中的特定ID映像

时间:2012-10-10 08:38:53

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

图像文件名通过添加vendorID之前的唯一存储,就像“200018hari”一样。下图显示了filename列中存储Cmp_DocPath的表格。

The Table where the filename is stored in the column Cmp_DocPath

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

Form design

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

我将如何处理C#中的代码隐藏?

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

2 个答案:

答案 0 :(得分:0)

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

  1. Generic Handler将从数据库中读取图像名称
  2. 之后
  3. 将图像文件读入二进制数组
  4. 之后它将根据请求写入数组。
  5. 那必须奏效。

答案 1 :(得分:0)

根据朋友的建议,我更改了将图像存储在物理路径中的代码&#34; D:\ Upload&#34;并将上传的图像存储在&#34; D:\ inetpub \ wwwroot \&#34;中。最后,在IIS中创建虚拟目录并提供&#34; D:\ inetpub \ wwwroot \ Upload&#34;作为物理路径。下面的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();
     }