Можно ли вернуть img в <img src="">, не используя его как статический? - PullRequest
0 голосов
/ 07 декабря 2018

Прямо сейчас я возвращаю изображение из контроллера в C # с

return File (bytes, "image / jpeg");

, и оно отлично работает,но это буквально возвращает файл.В то же время я хотел бы вернуть изображения, которые будут отображаться на странице , но не делая их статичными (поэтому, если пользователь дает кому-то еще URL-адрес, он должен будет войти в систему, чтобы иметь возможностьполучить доступ к ним).

Единственный способ сделать это, который мне удалось найти, - это кодирование Base64, и оно работает нормально, но кажется, что браузер немного отстает, когда размер img увеличивается.

Может быть, это какая-то вставка изображений в .cshtml, но это звучит как Base64

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

В вашем контроллере у вас есть действие, подобное этому (именно так, как вы описали):

public class PhotoController : Controller {
    public ActionResult GetPhoto() {
        ...
        return File(bytes, "image/jpeg");
    }
}

Если вы просто извлекаете файл из файловой системы, вы можете сделать это (если файлв папке вашего веб-сайта):

return File("~/images/" + name, "image/jpeg");

Или, если файл находится за пределами папки вашего веб-сайта:

return PhysicalFile("C:\\images\\" + name, "image/jpeg");

Тогда на вашей странице есть изображение, источник которого указывает наэто действие:

<img src="@Url.Action("GetPhoto", "Photo")">
0 голосов
/ 07 декабря 2018

Вы создаете отдельную «страницу» для изображения, которая все еще просто возвращает файл изображения.Страница знает, какое изображение показывать и нужно ли показывать, основываясь на пользователе и URL.Таким образом, у вас может быть страница Images.aspx и карта маршрута на вашу страницу, например:

/images/{imageID}

, которая может быть переведена в Images.apsx?ImageID={imageID}.Эта «страница» не возвращает html ... только изображение с типом содержимого image/jpeg.Тогда атрибут src для вашего элемента html <img на главной странице может указывать на ваш новый маршрут.

Независимо от того, что вы делаете, важно понимать, что вы используете модель запросов / ответов HTTP.,Элемент <img на странице должен предоставляться через совершенно отдельный HTTP-запрос, а не как часть того же запроса, который предоставил html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...