尽管路径正确,但仍未显示图像

时间:2013-07-30 20:08:53

标签: c# asp.net image path filepath

我正在动态创建图像,并从sql server分配路径,但服务器上的图像没有显示。

pic_list包含所有图像的路径,如下所示:

~/Member_Data/039658893/images/one.jpg

我的代码:

for (int j=0; j<pic_num; j++)
            {

                TableCell c1 = new TableCell();


                    ImageButton img = new ImageButton();
                    img.ID = temp.ToString();
                    img.ImageUrl = Server.MapPath(pic_list[temp]);
                    img.CssClass = "img_bg" ;
                    img.Click += new ImageClickEventHandler(delete_pic);

                    c1.Controls.Add(img);


                r1.Controls.Add(c1);

图片未显示,当我在chrome中检查它时,我得到了这条路径:

enter image description here

当我点击超链接时,我会到达此页面:

enter image description here

我检查过,服务器上存在图像文件。

我该如何写路径?

2 个答案:

答案 0 :(得分:1)

C:\inetpub\wwwRoot\...\efi5.jpeg路径是完整的文件系统路径,而不是应该在Web服务器上使用的路径。这些路径在技术上是正确的,但不在您想要的上下文中(Web服务器)。您需要从所有链接中删除C:\inetpub\wwwRoot\的Web服务器根目录的路径,然后离开igroup20\test2\Member_data\039658893\images\efi5.jpg。然后,您将拥有一个相对于Web服务器根目录的路径。

请记住,它们是相对于Web服务器根目录的,并且您需要知道从哪个目录调用它们。所以我建议你建立绝对的链接,如:

<a href="http://www.domain.com/igroup20/test2/Member_data/039658893/images/efi5.jpg">

而不仅仅是

<a href="igroup20/test2/Member_data/039658893/images/efi5.jpg">

答案 1 :(得分:0)

Server.MapPath为您提供服务器上文件的物理路径。

您需要浏览器才能看到图片的路径。像"/Member_Data/039658893/images/one.jpg"这样的东西就是你要找的东西。