2016-02-02 4 views
0

Там интересная нить на StackOverflow об этом: ASP.NET MVC: returning plaintext file to download from controller methodASP.Net MVC: Сохранить динамически созданный текстовый файл

Это сообщение объясняет, как показать содержимое текстовый файл на URL, но не так, как сохранить содержимое этого URL-адреса на диске клиента.

Есть ли возможность сохранить (на стороне клиента) файл, который (pratically) не существует? Там просто текст, и идея заключается в том, чтобы загрузить этот простой текст в TXT-файл.

+0

@Rhumborl, извините, но я не согласен с вами. Предлагаемое решение по вашей ссылке требует, чтобы файл имел путь (или физически существовал на стороне сервера). То, что я ищу, является решением, которое позволяет избежать существования такого файла. –

+1

У вас нет контроля над файловой системой клиентов. Вы должны вернуть физический файл в браузер и позволить пользователю сохранить его в своей системе. –

+3

В принятом ответе на этот вопрос говорится: «Верните FileResult или FileStreamResult из вашего действия, в зависимости от того, существует ли файл или вы его создаете« на лету ». Так что физически не нужно физически существовать на сервере – Rhumborl

ответ

1

Это, как я отправить PDF-фактуру клиенту:

 string contentType = "application/pdf"; 
     byte[] bytes = invoice.Data; 
     FileContentResult fileResult = new FileContentResult(bytes, contentType); 
     fileResult.FileDownloadName = invoice.FileName; 
     return fileResult; 

Это не нуждается в файл на диске. Обратите внимание, что решающим является тип содержимого. Именно это определяет, как браузер клиента обрабатывает ответ. Если у вас есть текстовый файл, и вы доставляете его клиенту с типом контента, установленным как «text/plain» (или похожим), может случиться так, что браузер клиента отобразит текст на вкладке браузера.

Для вызова диалогового окна загрузки, используйте

string contentType = "application/octet-stream"; 

Это будет сказать браузеру, что вы посылаете «что-то бинарное», тем самым заставляя «большинство нормальных браузеров», чтобы загрузить его.

+0

Спасибо @Wapac, это более полный ответ, чем другой: http://stackoverflow.com/questions/730699/how-can-i-present-a -file-для-загрузки-с-с-MVC-контроллер –

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