2012-04-30 4 views
0

Я размещаю файлы на своем веб-сервере, и я хочу, чтобы конечный пользователь мог загрузить копию этого файла на своей машине, чтобы открыть и просмотреть. В настоящее время у меня есть список, который заполняется через цикл foreach, и каждая итерация через цикл представляет собой @ Html.ActionLink («blahblahblah»). Есть ли способ загрузить файл в ссылке на действие?Загрузите файл с веб-сервера в ASP.Net 4.0 C#

+2

Что вы пробовали до сих пор? Как нынешнее поведение не оправдывало ваших ожиданий? – Jeff

ответ

3

Нажмите на ссылку скачать файл ... ЕСЛИ файл является HTML, браузер загружает его и показывает его в браузере; если это что-то другое (например, EXE), браузер загружает его в файловую систему.

0

Вместо того, чтобы использовать Html.ActionLink, используйте Url.Content с ссылкой (относительно приложения) в файл, который вы хотите загрузить. ActionLink предназначен для генерации hrefs, указывающих на действия на контроллере, а не на необработанные файлы в приложении.

0

Открыты ли эти файлы для публики? Существуют ли ограничения и т. Д.? Почему бы просто не иметь простых статических ссылок на эти файлы.

Ссылка на действие создает только ссылки, которые будут перенаправлены на определенный контроллер и действие.

Если вам необходимо защитить эти файлы, вы можете добавить код в соответствующее действие контроллера. Это действие будет читать байты из файла и дамп в ответ. Вам нужно будет добавить заголовки в браузер, чтобы распознать тип mime и отобразить диалоговое окно загрузки или соответствующим образом отобразить контент.

Проверить этот пункт Returning a file to View/Download in ASP.NET MVC

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