Мне нужно отправить файл CSV в ответ HTTP. Как я могу установить выходной отклик в формате CSV?
Это не работает:
Response.ContentType = "application/CSV";
Использование text/csv
является наиболее подходящим типом.
Вы также должны рассмотреть возможность добавления Content-Disposition
заголовка к ответу. Часто текст / CSV будет загружен Internet Explorer непосредственно в размещенный экземпляр Excel. Это может или не может быть желательным результатом.
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
Выше появится диалоговое окно «Сохранить как», которое может быть тем, что вы намереваетесь.
MIME-тип CSV - это text / csv в соответствии с RFC 4180 .
источник
Используйте
text/csv
в качестве типа контента.источник
На протяжении многих лет я оттачивал идеальный набор заголовков для этого, которые прекрасно работают во всех браузерах, о которых я знаю
источник
Попробуйте один из этих других типов пантомимы (отсюда: http://filext.com/file-extension/CSV )
Кроме того, MIME-тип может быть чувствительным к регистру ...
источник
Просто используйте так
источник
return new EmptyResult()
чтобы получить имя файла для прикрепления. В противном случае IE попытается сохранить файл какActionName.htm
.В ASP.net MVC вы можете использовать a
FileContentResult
иFile
метод:источник
Я обнаружил, что проблема с IE заключается в том, что он перехватывает возвращаемые данные и сам решает, какой тип контента он считает отправленным. Это вызывает ряд побочных эффектов, таких как постоянное открытие диалогового окна saveAs для текстовых файлов, поскольку вы используете сжатие данных. Решение (в PHP-код) ......
источник
Установка типа контента и расположения контента, как описано выше, дает сильно отличающиеся результаты в разных браузерах:
IE8: диалог SaveAs по желанию и Excel в качестве приложения по умолчанию. 100% хорошо.
Firefox: диалог SaveAs действительно появляется, но Firefox не знает, что это электронная таблица. Предлагает открыть его с помощью Visual Studio! 50% хорошо
Хром: подсказки полностью игнорируются. Данные CSV отображаются в браузере. 0% хорошо.
Конечно, во всех этих случаях я имею в виду браузеры, которые выходят из коробки, без настройки отображений mime / приложения.
источник
Я предлагаю вставить символ «/» перед «myfilename.cvs»
Я надеюсь, что вы получите лучшие результаты.
источник
Для C # MVC 4.5 вам нужно сделать так:
источник