查看图像问题

时间:2011-04-06 07:49:07

标签: asp.net vb.net

使用ASP.Net和VB.Net

代码

Image1.ImageUrl = "c:\Blue hills.jpg"

单击按钮时,上面的代码没有查看图像。

如何解决这个问题。

需要代码帮助

4 个答案:

答案 0 :(得分:3)

您不应该引用本地文件路径 - 您应该将ImageUrl设置为网络服务器上的URL - 例如,如果您的网站根目录中有该文件,则需要参考它为:

Image1.ImageUrl = "/Blue%20hills.jpg"

答案 1 :(得分:0)

您提供给ImageUrl属性的值是文件路径而不是Url 理想情况下,您的ASP.NET应用程序中应该有一个文件夹来保存您的图像文件,然后您可以使用相对或绝对Url路径引用它,例如:

Image1.ImageUrl = "/Content/Images/Blue hills.jpg"

答案 2 :(得分:0)

如果要显示位于网站根目录之外的服务器磁盘中的图片,则必须构建“代理”页面。例如,将其称为ShowImage.aspx,它将获取网址上的图片名称。

然后你会有这样的代码

Image1.ImageUrl = "ShowImage.aspx?image=Blue hills.jpg"

ShowImage.aspx代码背后的代码:

string imageName = Request.QueryString["image"] + "";
if (imageName.Length == 0 || imageName.Contains("/") || imageName.Contains("\\") || !imageName.ToLower().EndsWith(".jpg"))
{
    throw new Exception("Invalid image requested");
}
else
{
    string strFullPath = "C:\\" + imageName;
    Response.ContentType = "image/jpeg";
    Response.Clear();
    Response.WriteFile(strFullPath);
}
Response.End();

这是C#,但也应该足够简单,以便转换为VB.NET

编辑:添加了基本验证,验证用户未尝试从不同目录中获取文件,并仅允许.jpg个文件。

答案 3 :(得分:0)

Image1.ImageUrl = System.Web.HttpContext.Current.Server.MapPath("~") + "/"+ "Images" + "/"  + "Blue hills.jpg";

但如前所述,除非使用HttpHandler,否则无法像这样引用本地文件。

http://www.15seconds.com/issue/020417.htm