Путь к загруженному изображению сломан в ASP.NET - невозможно показать изображение - PullRequest
0 голосов
/ 23 июня 2019

Ранее я успешно показывал изображение следующим образом:

        <img class="centered" src="~/Content/images/gif.gif" style="max-height:12vw;" />

без проблем, но это изображение было добавлено в папку изображений решения.

Однако, когдаЯ загружаю изображение в API-интерфейс и сохраняю его следующим образом:

string FileName = valueobject.PictureName;
        string path = HttpContext.Current.Server.MapPath("~/UserFiles/" + valueobject.PictureOwner + "/");
        string imgPath = Path.Combine(path, FileName);

if (!System.IO.Directory.Exists(path))
            {
                System.IO.Directory.CreateDirectory(path);
            }
            File.WriteAllBytes(imgPath, valueobject.PictureImage);
            //store UserFile with path to the image
            UserFile _userFile = new UserFile();
            _userFile.FileOwner = valueobject.PictureOwner;
            string relativePath = "~/UserFiles/" + valueobject.PictureOwner + "/";
            string imgRelativePath = Path.Combine(relativePath, FileName);
            _userFile.FilePath = imgRelativePath;

Изображение сохранено - папка создана и изображение правильно сохранено в localhost.

Однако я не могу разрешитьотносительный путь в MVC, когда я пытаюсь:

                        <img height="400" style="width:auto" src="@Model.HomeGalleries[g].GalleryImageStrings[i]" runat="server" />

я получаю "сломанный" значок изображения, даже если

@Model.HomeGalleries [g] .GalleryImageStrings [i] равнок imgRelativePath

Я не уверен, почему это не работает.

1 Ответ

0 голосов
/ 23 июня 2019

вы должны включить Server.MapPath для этого фактического пути к изображению.ниже этой строки, например, как.

string relativePath = Server.MapPath("~/UserFiles/" + valueobject.PictureOwner + "/");

, пожалуйста, попробуйте это. Надеюсь, это вам поможет.

...