MVC3 Скачивание отдельных файлов - PullRequest
4 голосов
/ 13 января 2012

У меня есть веб-приложение MVC3 C # .Net.У нас есть функция «Приложение».Пользователь загружает документ, который он хочет «прикрепить» к предложению.Этот документ хранится на нашем сервере в ожидании загрузки.Эта часть работает.

Затем пользователь нажимает на название «Вложения», которое отображается в виде гиперссылки в таблице.Я уверен, что есть общий способ сделать это.Я просто не знаю как.Как загрузить файл по гиперссылке?

1 Ответ

9 голосов
/ 13 января 2012

Чтобы загрузить файл с помощью гиперссылки, сначала необходимо, чтобы ваша ссылка действия передавала имя файла в качестве значения маршрута для действия:

@Html.ActionLink("Download", "Download", 
                 new { fileName = Model.AttachmentFileName })

Ваше действие будет выполнено в fileName, откройтедля чтения в /some/path и возврата его с помощью встроенного в ASP.NET MVC FileStreamResult:

public ActionResult Download(string fileName)
{
    try
    {
        var fs = System.IO.File.OpenRead(Server.MapPath("/some/path/" + fileName));
        return File(fs, "application/zip", fileName);
    }
    catch
    {
        throw new HttpException(404, "Couldn't find " + fileName);
    }
}

Параметр application/zip - это тип MIME того, что вы возвращаете.В данном случае это файл .zip.

Здесь - список возможных типов MIME.

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