Я просто создаю простое веб-приложение, в котором пользователь может загрузить файл изображения логотипа для размещения на странице макета с помощью MVC.
Если пользователь загрузит новый файл изображения логотипа, он заменит предыдущий и отобразится при следующем обновлении. Но я не знаю, какой способ изящен.
На данный момент, когда пользователь загружает изображение логотипа, локальный путь к изображению и соответствующая информация сохраняются в базе данных.
На странице макета,
<img src="@Url.Action("GetLogo","BaseController")" alt="Logo"/>
Действие "GetLogo" для сохраненного локального пути извлекается из базы данных и возвращает FileContentResult, как показано ниже
public FileContentResult GetLogo(string param)
{
//retrieving path from db
//return new FileContentResult(bytes, "image");
}
Теперь это работает нормально. Но это кажется менее эффективным, потому что каждый раз, когда пользователь перемещается, страница макета тоже обновляется, и для получения информации о пути необходимо выполнить некоторый запрос в БД.
Другой способ, которым я мог подумать, - использовать статическое имя файла, как показано ниже.
<img src="@Url.Content("~/Content/logo.png")" alt="Logo"/>
Таким образом, когда пользователь загружает новый файл логотипа, сервер должен будет изменить имя нового файла изображения логотипа на logo.png. Но я не уверен, что это будет работать, когда пользователь загружает файлы различных типов, таких как jpeg и gif.
Запрос БД не может быть бременем с точки зрения сервера. Поэтому я могу придерживаться первого подхода. Но я не уверен.
Если кто-нибудь из опытных парней может дать мне какой-либо совет, я был бы очень признателен.
Спасибо,