使用ASP.Net和VB.Net
代码
Image1.ImageUrl = "c:\Blue hills.jpg"
单击按钮时,上面的代码没有查看图像。
如何解决这个问题。
需要代码帮助
答案 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,否则无法像这样引用本地文件。