0

我正在动态创建图像,并从 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 中检查它们时,我得到了这个路径:

在此处输入图像描述

当我单击超链接时,我会进入此页面:

在此处输入图像描述

我检查并且图像文件存在于服务器上。

我应该如何写路径?

4

2 回答 2

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">
于 2013-07-30T20:20:21.640 回答
0

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

您需要图像的路径,因为浏览器会看到它。类似的东西"/Member_Data/039658893/images/one.jpg"就是你要找的东西。

于 2013-07-30T20:21:07.243 回答