2013-11-12 2 views
2

У меня есть следующие ссылки внутри моего ASP.NET MVC веб-приложения: -Невозможно получить доступ изображения, хранящиеся в моей папке App_Data

<a href="~/App_Data/uploads/38.png">@Model.Name</a> 

Но когда я нажимаю на эту ссылку, я получаю следующее сообщение об ошибке:

Ошибка HTTP 404.8 - Not Found

запрос модуль фильтрации, выполненный с возможностью отрицать путь в URL, который содержит секцию hiddenSegment.

Так что же вызывает эту проблему, и как я могу ее решить?

Thanks

+0

IIS7 считает, что вы пытаетесь обслуживать внутренние приложения; см. http://www.iis.net/configreference/system.webserver/security/requestfiltering/hiddensegments и http://www.iis.net/configreference/system.webserver/security/requestfiltering/hiddensegments. Если вам нужно сохранить загруженные файлы png, создайте виртуальный каталог, указывающий на '~/App_Data/uploads /' и подавайте его, например. '~/Загрузки /'. В противном случае я просто поставил ваши png-файлы где-нибудь еще, кроме 'App_Data'. – user326608

ответ

4

Создания контроллера (например, «Streamer») и действия (например, «StreamUploadedImage»), что потоки изображения (действие, как правило, возвращает FileResult).

Измените URL-адрес ссылки на свое действие, передав идентификатор изображения в качестве параметра, например. (Из памяти, так что синтаксис не может быть точным):

@Html.ActionLink(Model.Name, "StreamUploadedImage", "Streamer", new {id = "38" }) 

В качестве альтернативы можно поместить загруженное изображение в месте, где она может быть доступна от клиента, например, в подпапках папки «Содержимое»:

<a href="~/Content/uploads/38.png">@Model.Name</a> 

Но использование контроллера дает вам больше контроля, например. для осуществления авторизации.

1

Путь заблокирован IIS. Чтобы решить проблему, переместите файлы в другое место («~/Uploads/Images /» возможно?).

Причина, по которой IIS блокирует некоторые папки, заключается в том, что они могут содержать импортные данные или файлы, к которым у пользователя не должен быть доступа. Чтобы хакеры не получали эту информацию, IIS запрещает доступ к любому из файлов в этих папках.

Для получения дополнительной информации: http://www.iis.net/configreference/system.webserver/security/requestfiltering/hiddensegments

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