2012-10-10 107 views
0

图像文件名是通过独特的显示存储在特定ID的图像与之前添加vendorID像“200018hari”。下图显示filename存储在列Cmp_DocPath中的表格。如何从服务器文件夹

The Table where the filename is stored in the column Cmp_DocPath

我想显示从服务器文件夹中的特定VendorID形象。“d:\上传\商用证书”,当用户从下拉列表中选择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

听起来像是一个安全问题,如果客户端可以在服务器上定义他想下载的东西的路径。 (如何下载你的web.config然后?) –

+0

客户端只需使用文件上传上传图像。我在IIS中创建了虚拟路径,并提供了存储上传图像的路径。所以客户端没有定义服务器的路径。我需要C#代码来检索文件夹中的图像以显示在屏幕上。 – Hari

回答

0

从我的朋友们的建议后,我改变了代码的物理路径的图像存储“d:\上传”并存储上传的图片中的“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(); 
    } 
+0

如何保护图像免受未经授权的访问? – dellyjm

0

如果你正试图获取与一个VendorID相关的图像(Cmp_DocPath),你需要使用一个Generic Handler。以下应该是Generic Handler的技术。

  1. Generic Handler将从数据库
  2. 读取的图像名称后,它在对二进制数组
  3. 后,它将阵列写入请求的响应读出的图像文件。

这必须工作。

+0

'代码格式化'风格似乎在'印度'非常'流行',这些'天'。 –

+0

@UweKeim ::你是什么意思? –

相关问题