我正在动态创建图像,并从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中检查它时,我得到了这条路径:
当我点击超链接时,我会到达此页面:
我检查过,服务器上存在图像文件。
我该如何写路径?
答案 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"
这样的东西就是你要找的东西。