【问题标题】:Change src attribute for Image element after upload image in ASP.NET Core在 ASP.NET Core 中上传图像后更改 Image 元素的 src 属性
【发布时间】:2021-11-08 15:43:27
【问题描述】:

我使用 ASP.NET Core 的上传工具上传人物图片,我在上传图片工具旁边放了一个 HTML Image 元素来显示上传后的图片。

我为上传工具调用.Success 事件并使用javascript 函数为带有上传图像路径的图像元素设置src 属性。但不幸的是它不起作用:(

这是图像元素

<img id="imgPerons" src="" width="200" height="250">

这是javascript函数:

function onSuccess(e) {
    var files = e.files[0];

    if (e.operation == "upload") {
        document.getElementById("imgPerson").src = "~/images/person_photos/image.jpeg";
    }
}

我觉得我的图片路径有问题,因为我使用了如下的在线图片,并且效果很好

function onSuccess(e) {
    var files = e.files[0];

    if (e.operation == "upload") {
        document.getElementById("imgPerson").src = "https://www.example.com/image.jpeg";
    }
}

图片的路径有什么问题?

我把上传的图片保存在wwwroot/images/person_photos

路径Views/Home/Index.cshtml中的Image元素和javascript函数

【问题讨论】:

  • 什么是通用文档根目录?我的意思是,您在那里显示了 2 条路径,但它们都没有共同的根。没有它,我们无法为您提供所需的相对路径。
  • 你有UseStaticFiles 打电话到Startup.cs吗?
  • @Alexander 是的,我有
  • 无论如何,一般./ 表示“当前目录”,../ 表示上一个目录。所以./image.jpg 的意思是“在与此脚本相同的目录中查找 image.jpg”。 ./../image.png 表示“从这个目录开始。向上一个目录并在那里查找图像”。当您了解这一点时,遍历正确的相对路径并将其指向图像应该非常简单。 (旁注:这是一般方式,我对 asp.net-core / kendo 细节一无所知)
  • @icecub 感谢您的解释。正如亚历山大所说,错误在于〜唱歌。

标签: javascript asp.net-mvc asp.net-core


【解决方案1】:

删除 ~ 登录 javascript 代码应该可以解决问题,因为它仅在 ASP.NET Core 侧处理

document.getElementById("imgPerson").src = "/images/person_photos/image.jpeg";

【讨论】:

  • 感谢您的回答和澄清,它有效。
  • @AbdulsalamElsharif 我会在上面加一个点:./images/person_photos/image.jpeg";。在大多数系统上,这个答案可能会正常工作。但在某些情况下,如果你不包含那个点,它会假设你正在尝试从操作系统根目录而不是当前目录开始。
猜你喜欢
  • 2021-03-30
  • 1970-01-01
  • 2016-01-26
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多