Создать ссылку на скачивание файла

205
30 мая 2018, 16:10

У меня такой вопрос. Значит я добавил файл excel через resources. Потом я открываю через код добавляю некоторые данные.

string printoutFileName = @"C:\Users\print.xlsx";
byte[] templateBinaryContent=Properties.Resources.print;
Application excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Add(printoutFileName);
Worksheet worksheet = (Worksheet)workbook.Sheets[1];
worksheet.Cells[1,1]="blabla";
workbook.Save();

И этот файл сохраняется в папке Документы.

А мне нужно чтобы когда нажимал кнопку (точнее в браузере линк "скачать"), файл скачивался в браузере.

Answer 1

В контроллере action возвращают ActionResult и чаще всего это строки, но вообще ещё можно вернуть json или даже целый файл.

Создайте в контроллере action возвращающий FileContentResult:

public class MyController : Controller
{
    public FileContentResult DownloadFile(int fileId)
    {
        byte[] content = File.ReadAllBytes(physicalPathToFile);
        var fileType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        var fileName = "test.xlsx";
        return this.File(content, fileType, fileName);
    }
}

См. также:

  • Отправка файлов в ASP.NET MVC
  • What is a correct mime type for docx, pptx etc?
READ ALSO
Получение строки из Python скрипта в С#

Получение строки из Python скрипта в С#

Нужно запустить Python3 скрипт на С#IronPython, как выяснилось, поддерживает только python2

191
Naudio файл используется другим процессом

Naudio файл используется другим процессом

Есть небольшой код воспроизведения аудио через библиотеку Naudio

187
Как найти пропорцию размера в Picturebox?

Как найти пропорцию размера в Picturebox?

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

182
Не работает конструкция if!

Не работает конструкция if!

Пишу новостной парсерБыл старый метод получения данных из RSS,попроще, он работал

196