Сохранить csv как файл вложения, настройка PHP + Apache не работает - PullRequest
0 голосов
/ 05 мая 2009

У меня есть интересная проблема, которая, я думаю, связана с сервером. Я хочу, чтобы данные CSV сохранялись в виде файла CSV, когда пользователь нажимает кнопку. Он отлично работает на моем сервере разработки, но на производстве он просто отображает содержимое страницы. Я предполагаю, что это должно быть проблема с сервером, но я действительно не уверен, что это могло быть. Может ли GZIP повлиять на это?

Мой код заголовка выглядит следующим образом:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=$filename");
echo $out;

Таким образом, приведенный выше код работает на сервере разработки, а в производственном процессе просто выводит CSV на страницу. Есть идеи?

Ответы [ 3 ]

1 голос
/ 05 мая 2009

Единственное, о чем я могу думать, - это пантомима. У меня были некоторые проблемы с mime-типами (особенно с файлами .flv) при переходе с одного сервера на другой.

Для файлов .csv я использовал application/octet-stream.

Надеюсь, что помогает

0 голосов
/ 05 мая 2009

Просто используйте Wireshark (http://www.wireshark.org) и перехватывайте HTTP-трафик для обоих случаев и ищите различия. Предполагается, что Fiddler также будет работать

0 голосов
/ 05 мая 2009

Да, я полагаю, это и пантомима. Возможно, вы захотите попробовать специфичный для csv "text / csv" ( RFC 4180 ) или общий "application / octet-stream".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...