Не предлагается загрузить файл CSV - PullRequest
2 голосов
/ 19 мая 2010

Я создал собственное решение в WordPress, которое будет генерировать CSV-файл для загрузки, нажав на простую гиперссылку, связанную непосредственно с этим файлом.Вместо запроса загрузить файл на компьютер;вместо этого в окне браузера открывается CSV.

FWIW Я в Media Temple, используя ванильную установку WordPress.

Ответы [ 4 ]

4 голосов
/ 19 мая 2010

Отправить правильный тип пантомимы

header('Content-type: text/csv');

И используйте заголовок Content-Disposition, чтобы сообщить ему о загрузке: http://www.jtricks.com/bits/content_disposition.html

header('Content-Disposition: attachment; filename="mycssfile.csv"');

Вы всегда хотите отправить правильный тип MIME, в противном случае брандмауэры, антивирусное ПО и некоторые браузеры могут иметь проблемы с ним ...

2 голосов
/ 19 мая 2010

Это работает:

$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';"/>
2 голосов
/ 19 мая 2010

Вы можете использовать функцию PHP header() для изменения типа контента

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="myFile.csv"');

Приведенный выше код заставит пользователя к загрузке. где myFile.csv следует заменить на путь к файлу, который вы хотите загрузить.

0 голосов
/ 19 мая 2010

Вам необходимо отправить браузеру MIME-тип application/csv, чтобы он перекладывал ответственность за обработку файла на то, что рекомендует ОС (или пользователь выбирает).

В PHP (перед отправкой любого вывода клиенту):

header('Content-type: application/csv');
...