Как скачать файлы средствами MVC 3?

Здравствуйте. Я получаю от службы список файлов, как мне предложить, пользователю скачать их.
Код контролера примерно такой
public ActionResult GetFiles()
        {

            var files =  Client.GetFiles();
            
        }


в files содержится список (List"<"File">")
public class File
    {
        public string Name { get; private set; }
        public byte[] FileData { get; private set; }
}
  • Вопрос задан
  • 3062 просмотра
Решения вопроса 1
bob_smith
@bob_smith
Сразу несколько файлов отдать клиенту нельзя. Можно один, примерно так:
public FileResult GetFile()
{
    var file =  Client.GetFile();
    return File(file.FileData, System.Net.Mime.MediaTypeNames.Application.Octet, file.Name);
}


Или сначала зазиповать, а потом отдать архив. Примерно так:
public FileResult GetFiles()
{
    var files =  Client.GetFiles();
    var outputStream = new MemoryStream();

    using (var zip = new ZipFile())
    {
        foreach(var file in files)
            zip.AddEntry(file.Name, file.FileData);
        zip.Save(outputStream);
    }
    outputStream.Position = 0;
    return File(outputStream, "application/zip", "files.zip");
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы