2

Я добавляю возможность загрузки изображений в мое приложение ASP.net mvc. В основном пользователь выбирает изображение, и я загружаю его в папку «Изображения», которую я создал в структуре папок решения. Это отлично работает, и изображение загружается в папку с изображениями.ASP.net Просмотр каталога MVC

Проблема, которая возникает у меня, теперь отображает изображение обратно в браузер. Мой вопрос заключается в том, как изменить свойства просмотра каталогов на сервере разработки Asp.net (localHost: blah blah), чтобы в браузере появился каталог изображений, то есть http://localHost:9823/Images/UploadedImageName.jpg?

Заранее спасибо

ответ

2

Пара вариантов, которые я использовал. Плюсы и минусы каждого стиля!

В The View

Вы могли бы ваши взгляды сконфигурированной использовать этот стиль:

<img src="<%=ResolveUrl("~/Images/foo.png")" %> /> 

Это может быть переработан несколько способов. Возможно, существует метод расширения или код вашего представления.

Метод Controller + Route

Создать новый контроллер для обслуживания образы. Убедитесь, что у вас есть маршрут по умолчанию.

public class Images 
{ 
    public FileResult GetImage(string fileName) //foo.png 
    { 
     string fullPath = "~/Images/" + fileName; 
     return base.File(fullPath, "image/jpeg"); 
    } 
} 

... 
routes.MapRoute("UserImage", 
       "Image/{filename}", 
       new { controller = "Images", action = "GetImage", 
         fileName=filename }); 
+0

Вы должны подтвердить имя файла, чтобы предотвратить обход пути. (например, 'fileName = .. \ web.config') – SLaks

Смежные вопросы