Как мне получить CSV-файл для загрузки на IE? Работает на Firefox - PullRequest
34 голосов
/ 09 февраля 2010

Я борюсь со странной ошибкой. У меня есть простое веб-приложение, которое берет данные из БД и выводит их в виде загружаемого CSV-файла. Он работает на Firefox и Chrome, но IE не может распознать его как CSV-файл (думая, что это HTML-файл), и когда я нажимаю сохранить, я получаю сообщение об ошибке: «Невозможно загрузить {имя файла} с {имя сайта} . Невозможно открыть этот интернет-сайт. ... "

Код:

session_start();

//some logic goes here...  

//generate csv header  
header("Content-type: application/octet-stream");  
header("Content-Disposition: attachment; filename=exportevent.csv");  
header("Pragma: no-cache");  
header("Expires: 0");  

echo "Event: " . $event_title . "\n";  

//print the column names  
echo "Last Name, First Name, Company \n";  

while($row = mysql_fetch_assoc($result))  
{  
    echo $row['atlname'] . ',' . $row['atfname'] . ',' . $row['atcompany'] . "\n";      
}

Я играл с типом контента целую кучу, но это не имело никакого эффекта.

Обновление: я пробовал text / csv, application / vnd.ms-excel (и варианты этого), text / plain и некоторые другие, которые я сейчас забываю без удачи.

Это IE8, кстати.

Обновление 2: соединение через SSL.

Ответы [ 12 ]

0 голосов
/ 09 февраля 2010

Некоторое время назад у меня возникла проблема с открытием файлов PDF в IE6 и сбоем при установке AdobeReader 6.0 и попытке открыть файл в окне браузера. Чем я нашел где-то этот заголовок:

header('Content-Type: application/force-download');

И это решило проблему, каждый файл PDF был загружен и открыт в Adobe вместо IE.

0 голосов
/ 09 февраля 2010

Вы пробовали Content-type: text / csv?

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