Как использовать 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)

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

Author: Tadeck, 2008-12-29

4 answers

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

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

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

 212
Author: Sean Bright, 2011-11-08 10:36:41

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

"Content-Disposition: attachment; filename=abc.csv"
 11
Author: gimel, 2008-12-29 18:14:22

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

header('Pragma: public');

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

 4
Author: 4levels, 2011-05-04 09:51:45

Этот код можно использовать для экспорта любого файла, включая 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"');
 1
Author: Yuri Korolov, 2014-01-23 15:46:42