2017-03-23 122 views
1

图像未从asp.net 中的给定路径加载,这里是场景。我已经上传一个图像到文件夹使用asp.net,并插入它的SQL Server数据库的路径,但是当我尝试从我的asp应用程序的路径中获取图像“路径是正确的”,但图像加载失败。没有错误。图片不能从路径加载

这里是上传数据

if (FileUpload1.HasFile && TextArea1.Value != null) 
    { 
     string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); 
     string path = Server.MapPath("/admin/images/" +fileName); 
     FileUpload1.PostedFile.SaveAs(Server.MapPath("/admin/images/" + fileName)); 
     //Response.Write("<script>alert('" + path + "');</script>"); 
     string ta1 = TextArea1.Value; 
     string sql = "UPDATE homep SET img = '" + path + "', description= '" + ta1.Replace("'", "''") + "' WHERE id = 1;"; 
     cmd = new SqlCommand(sql, con); 
     if (cmd.ExecuteNonQuery() > 0) 
     { 
      Response.Write("<script>alert('Updation Success ..!');</script>"); 
     } 
    } 

这里的代码用于获取数据

dr.Read(); 
    Response.Write("<img src='"+dr["img"].ToString()+"' class='img-responsive'/>"); 
    dr.Close(); 

This Image shows final output as i am getting content but not getting image from path

回答

1

您服务上的服务器硬盘的物理路径的代码到客户端浏览器无法打开的浏览器。你应该建立一个action方法来提供图像,并且在图像中的src =“”中为url提供这个actionmethod。

例如:

Response.Write("<img src='/Serveimage/?path="+dr["img"].ToString()+"' class='img-responsive'/>"); 

,然后创建 'ServeImage' actionmethod:

public FileResult ServeImage(string path) 
{ 
    var bytes = System.IO.File.ReadAllBytes(path); 
    return File(bytes, "image/png"); 
} 
+0

感谢您的解决方案,但我使用数据库检索路径。所以我可以把这个方法,我从数据库 –

+0

是的路径。在图像的src中,您仍然像在初始代码中那样指定路径。该路径作为URL参数传递(参见?path =)到我建议的actionmethod。此方法将从硬盘读取文件并将其提供给浏览器。 – middelpat

+0

非常感谢,我完成了。 –

0

使用〜这样的:

Server.MapPath("~/admin/images/" +fileName) 
+0

感谢您的解决方案,我已经做到了,但仍然无法正常工作。 –

+0

确保您的图像路径文件夹是正确的 –

+0

物理路径有错误,我正在给物理路径,但虚拟路径是必需的完成从上面发布的答案。 –