图像未使用asp.net显示

时间:2014-04-19 15:14:51

标签: c# asp.net

在下面的代码中,我有一个图像,我从代码隐藏中传递图像网址,但它没有显示图像。

public string strName = "SV";
        public string strFolder = "Documents";

 string Imgdocname = SearchDoc.DocumentName;
                string fileExt = System.IO.Path.GetExtension(Imgdocname);
                fileExt = fileExt.ToLower();
                if (fileExt == ".jpeg" || fileExt == ".jpg")
                {

                    docimg.ImageUrl  = "C:\\Search\\" + strName + "\\" + strFolder + "\\" + Imgdocname; //not working
                    docimg.Visible = true;
                 } else
                {docimg.ImageUrl  = "C:\\Search\\doc\\Documents\\image.jpeg";  //not working

                }

<div ID="imgContainer" runat="server" style="width: 700px; height: 300px;  overflow:auto; border: solid 1px black;
                    padding: 10px; margin-bottom: 5px;" >
<asp:Image ID="docimg" runat="server" />

          </div>

3 个答案:

答案 0 :(得分:1)

IS搜索您的项目名称?

如果是,则使用

 if (fileExt == ".jpeg" || fileExt == ".jpg")
 {

           docimg.ImageUrl= "~/" + strName + "/" + strFolder + "/" + Imgdocname;
           docimg.Visible = true;
 }
 else
 {
          docimg.ImageUrl = "~/doc/Documents/image.jpeg";
          docimg.Visible=true;
 }   

答案 1 :(得分:1)

与客户端应用程序相反,Web应用程序中的图像不会直接包含在页面中。相反,该页面包含浏览器在检索页面的HTML后请求的图像资源的链接。因此,您需要提供客户端可以检索的URL。在您的示例中,您将服务器上的文件路径设置为图像URL。这不起作用,因为客户端无法直接访问服务器上的文件路径。

相反,您需要将图像放在可通过Web服务器(例如IIS)访问的文件夹中,以便您能够设置客户端可用于检索图像的/img/picture.jpg之类的URL。实现此目的的最简单方法是将图像放在应用程序根文件夹下的文件夹中。在这种情况下,您可以像这样设置图像URL(假设图像所在的文件夹名为img):

var imgUrl = "~/img/";
if (fileExt == ".jpeg" || fileExt == ".jpg")
    imgUrl += strName + "/" + strFolder + "/" + Imgdocname;
else
    imgUrl += "doc/Documents/image.jpeg";
docimg.ImageUrl = imgUrl;
docimg.Visible = true;

~是服务器上项目根目录的占位符,这样无论您的应用程序是安装在网站的根目录还是下面的某个位置,链接都可以正常工作。

答案 2 :(得分:0)

您无法指定计算机上任何驱动器的绝对路径。 ImageUrl不是计算机的路径,而是项目中存在的Url路径。

在项目根目录中创建一个文件夹 Images ,并将路径指定为

docimg.ImageUrl = "~/Images/image.jpeg";

波浪号〜指的是项目的根目录。