图像控制无法显示图像

时间:2011-12-30 12:50:28

标签: c# asp.net

我的代码是:

string filename = FileUploader.PostedFile.FileName.Substring(fuImage.PostedFile.FileName.LastIndexOf("\\") + 1);
if(fuImage.HasFile)
  {
      FileUploader.SaveAs(Server.MapPath("Modules/NewUserProfile/UserPic/" + filename));
      imgUser.ImageUrl = Server.MapPath("Modules/NewUserProfile/UserPic/" + filename);
  }

imgUserasp:Image的ID。控件.Image在欲望文件夹中上传,但在图片控件中不显示图片。我在这里做错了什么?有没有回发问题。谢谢。

5 个答案:

答案 0 :(得分:2)

使用ImageUrl属性的相对路径。

imgUser.ImageUrl = "Modules/NewUserProfile/UserPic/" + filename;

如果Modules文件夹位于web-app的根目录,则使用root operator~

imgUser.ImageUrl = "~/Modules/NewUserProfile/UserPic/" + filename;

答案 1 :(得分:2)

要运行此代码,请了解以下事项:

  1. Server.MapPath()用于获取物理路径,如:D:/ Img / Upload / .. 所以最好找到保存图像的路径。
  2. 但是当您获取图像以将其绑定到图像控件时,您必须使用虚拟路径而不是物理路径。 虚拟路径如:localhost / demo / upload / myimage.jpg。

答案 2 :(得分:0)

我通常首先使用您的浏览器执行一个view-source来调试这样的问题,并确保HTML源代码中的URL符合您的预期。然后尝试复制显示在您的视图源中的网址,并将其粘贴到浏览器的地址栏中,然后查看它是否显示。

答案 3 :(得分:0)

我认为您应该等待图像完全上传,然后将图像路径设置为图像。

在渲染到浏览器之后,在Mozilla或Chrome Inspect Elemnt中使用FireBug,通过查看图像来检查图像是否已正确渲染。如果它坏了那么你的图像路径是错误的。尝试给出相对路径并检查。

答案 4 :(得分:0)

newpic.ImageUrl = Page.ResolveURL("~/Pictures")+filename;

Server.MapPath返回物理驱动器位置,这在您分配映像时无用。