Как использовать CSV MIME-тип? - программирование

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

В веб-приложении, над которым я работаю, пользователь может щелкнуть ссылку на файл 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 (на окнах)

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

4b9b3361

Ответ 1

Вы можете попытаться заставить браузер открыть диалог "Сохранить как...", выполнив что-то вроде:

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

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

Ответ 2

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

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

Ответ 3

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

header('Pragma: public');

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

Ответ 4

Этот код может использоваться для экспорта любого файла, включая 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"');