Как использовать MIME-тип CSV?

В веб-приложении, над которым я работаю, пользователь может щелкнуть ссылку на файл CSV. Для mime-типа не задан заголовок, поэтому браузер просто отображает его как текст. Я хотел бы, чтобы этот файл был отправлен как файл .csv, чтобы пользователь мог напрямую открыть его с помощью calc, excel, gnumeric и т. д.

header('Content-Type: text/csv');
echo "cell 1, cell 2";

Этот код работает должным образом на моем компьютере (разве не так, как всегда?), Но не работает на другом компьютере.

Мой браузер - это ночная сборка FF 3.0.1 (в Linux). Браузеры, в которых он не работал, были IE 7 и FF 3.0 (в Windows)

Есть ли какие-то причуды, о которых я не подозреваю?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
126
0
192 120
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Вы можете попытаться заставить браузер открыть диалоговое окно «Сохранить как ...», выполнив следующие действия:

header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "cell 1, cell 2";

Что должно работать в большинстве основных браузеров.

Вы не указываете язык или структуру, но для загрузки файлов используется следующий заголовок:

"Content-Disposition: attachment; filename=abc.csv"

В Internet Explorer вам часто приходится указывать заголовок Pragma: public, чтобы загрузка работала правильно.

header('Pragma: public');

Только мои 2 цента ..

Прагма: public не имеет никакого значения для Internet Explorer. (Я работал над рассматриваемым компонентом, и я нашел источник).

EricLaw 12.08.2013 23:38

Возможно, реальная полезность этого заключается в замене уже существующего заголовка Pragma: no-cache?

Doin 15.01.2014 18:38

Этот код можно использовать для экспорта любого файла, включая csv.

// application/octet-stream tells the browser not to try to interpret the file
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($data));
header('Content-Disposition: attachment; filename = "export.csv"');

"поток октетов" означает "поток октетов"

EricLaw 12.08.2013 23:38

Это может вызвать предупреждение в некоторых браузерах: ресурс интерпретируется как документ, но передается с использованием типа MIME application / octet-stream.

mikeschuld 11.09.2013 21:23

Другие вопросы по теме