【问题标题】:Image Is Not Loading From Path图像未从路径加载
【发布时间】:2017-08-15 18:08:57
【问题描述】:

图像未从 asp.net 中的给定路径加载 这里,是情景。我已经使用 asp.net 将图像上传到文件夹并将其插入到 SQL 服务器数据库的路径,但是当我尝试从我的 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

【问题讨论】:

    标签: c# asp.net sql-server asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    您将服务器硬盘驱动器上的物理路径提供给浏览器,客户端的浏览器无法打开该路径。您应该构建一个提供图像的操作方法,并在图像的 src="" 中提供该操作方法的 url。

    例如:

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

    然后创建“ServeImage”操作方法:

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

    【讨论】:

    • 感谢您的解决方案,但我正在使用数据库检索路径。所以我可以把路径放在我从数据库中获取的这个方法中
    • 是的。在图像的 src 中,您仍然像在初始代码中一样指定路径。此路径作为 url 参数(请参阅 ?path=)传递给我建议的操作方法。此方法将从硬盘读取文件并将其提供给浏览器。
    • 请注意,出于安全原因,您应该对代码进行一些更改。例如,ServeImage 方法只是盲目地为您请求的服务器上的任何文件提供服务。此外,将整个路径放在 html 中可能不是一个好主意,而是图像的 id 并让 ServeImage 方法从数据库中检索路径。
    【解决方案2】:

    像这样使用~:

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

    【讨论】:

    • 感谢您的解决方案,我已经这样做了,但仍然无法正常工作。
    • 物理路径出错,我给出了物理路径但需要虚拟路径从上面发布的答案中完成。
    • 我只是给出了路径,并删除了 Server.MapPath
    • no 不要删除 Server.MapPath(image path here).......那么你的图片必须在你的项目文件夹中
    猜你喜欢
    • 2016-08-12
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多