Asp.net MVC FileContentResult - предотвратить открытие в браузере - PullRequest
5 голосов
/ 05 октября 2011

Одно из моих действий контроллера возвращает файл пользователю.Я хотел бы, чтобы пользователю было представлено диалоговое окно загрузки (открытия / сохранения) независимо от типа файла.Это прекрасно работает, когда тип файла: .doc, .docx, .xlsx и т. Д., Но когда файл имеет формат .txt, .xps, .pdf (иногда) или .html, он открывается в браузере.

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

Запрос файласделан с использованием jQuery $.ajax({}).

Связанный: браузер обрабатывает запрос и выдает всплывающее окно в отличие от вызова AJAX, получающего содержимое файла в виде строки ответа, объясняется this ansewr, но этот вопрос касается того, чтобы браузер определенным образом обрабатывал файл после его получения.

1 Ответ

5 голосов
/ 05 октября 2011

Я не думаю, что вы можете сделать это с помощью команды или настройки на стороне клиента.Вам нужно будет что-то сделать на сервере, чтобы он возвращал тип содержимого application/octet-stream для каждого файла.В противном случае браузер будет просматривать входящий файл и решать, что с ним делать, основываясь на своих собственных правилах и возможностях.

Если вы можете сделать это на своем сервере, попробуйте установить для заголовка "Content-Disposition" значение * 1005.*

...