За последние 24 часа нас посетили 63186 программистов и 1743 робота. Сейчас ищут 964 программиста ...

Кодировка заголовков и кириллица в параметрах заголовков

Тема в разделе "Прочие вопросы по PHP", создана пользователем dimalogin, 30 июн 2008.

  1. dimalogin

    dimalogin Активный пользователь

    С нами с:
    24 фев 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Москва
    Делаю сайт в кодировке utf-8, ну и конечно есть возможность загрузки файлов, отдаю их следующей функцией:
    Код (Text):
    1.  
    2. function downloadFile($realFilePath, $fileName) {
    3.     $fileName = preg_replace("%[\r\n]+%", ' ', $fileName);
    4.     $fileName = "=?UTF-8?B?" . base64_encode($fileName) . "?=";
    5.  
    6.     if(!file_exists($realFilePath)) {
    7.         return false;
    8.     }
    9.    
    10.     header('HTTP/1.0 200 OK');
    11.     header('Status: 200 OK');
    12.     header('Accept-Ranges: bytes');
    13.     header('Content-Length: ' . filesize($realFilePath));
    14.     header('Content-Disposition: attachment; filename="' . $fileName . '"');
    15.     header('Content-Type: application/*');
    16.  
    17.     $handle = @fopen($realFilePath, 'rb');
    18.     if ($handle) {
    19.         while(!feof($handle) and !connection_status()) {
    20.             print fread($handle, (1024 * 8));
    21.         }
    22.         return true;
    23.     }
    24.     else {
    25.         return false;
    26.     }
    27. }
    В базе файл хранится в следующем виде:
    Код (Text):
    1.  
    2. file=f3b163f933747288edbed960af68a4e4&name=Текстовый документ.txt
    Тоесть путь к файлу это параметр file, а его настоящее имя - параметр name,

    Вопрос вот в чем все работает прекрасно, но при скачивании файла имя файла отображается правильно только в firefox
    и opera, в IE не работает, как заставить IE правильно читать параметры заголовков?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    С помощью заголовков нельзя сделать поддержку всеми браузерами, качалками и т.д.
    Уберите заголовок, отдавайте имя файла в URL "как есть", без GET параметров:
    http://example.com/download/f3b163f9337 ... 0af68a4e4/Текстовый документ.txt