Я создал пользовательское решение в WordPress, которое будет генерировать CSV-файл, который будет загружен, нажав на просто гиперссылку, связанную непосредственно с этим файлом. Вместо запроса на загрузку файла на компьютер; вместо этого CSV открывается в окне браузера.
FWIW Я на Media Temple с помощью ванильной установки WordPress.
Отправить правильный тип mime
header('Content-type: text/csv');
И используйте заголовок Content-Disposition, чтобы сказать ему, чтобы скачать его: http://www.jtricks.com/bits/content_disposition.html
header('Content-Disposition: attachment; filename="mycssfile.csv"');
Вы всегда хотите отправить соответствующий тип mime, иначе брандмауэры, антивирусное программное обеспечение и некоторые браузеры могут иметь проблемы с ним …
Вы можете использовать функцию header()
PHP для изменения типа содержимого
header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="myFile.csv"');
Вышеприведенный код заставит пользователя запросить загрузку. где myFile.csv
следует заменить на путь к файлу, который вы хотите загрузить.
Это работает:
$filename = 'export.csv'; header('Content-type: application/csv'); header('Content-Disposition: attachment; filename='.$filename);
Кроме того, мне лично не нравятся ссылки на моих сайтах, мне нравятся кнопки. Если вы хотите, чтобы кнопка выполняла функцию экспорта, вы можете использовать код ниже. Я просто подумал, что я опубликую его, потому что мне потребовалось немного разобраться в первый раз 🙂
<input type="button" value="Export to CSV" onClick="window.location.href='something.php?action=your_action';"/>
Вам необходимо отправить браузер в MIME-тип application/csv
чтобы он отключил ответственность за обработку файла независимо от того, что рекомендует ОС (или пользователь выбирает).
В PHP (до отправки любого результата клиенту):
header('Content-type: application/csv');