php / Скачивание файлов с именем на русском языке (кириллице)
$file = $_GET['file'];
if (substr($file, -4, 4) !== ".doc")
die();
$file=iconv("UTF-8", "windows-1251", $file);
if (!file_exists("./".$file))
die();
header('Content-type: application/doc');
header('Content-Disposition: attachment; filename="'.$file.'"');
readfile($file);
Если по FTP на сайт закачаны файлы с кириллическими именами, то скачивание напрямую может не работать из-за кириллицы. Все зависит от кодировок сервера и сайта.
Например кодировки сайта "windows-1251".
Решение задачи без переименовывания файлов и правки php скриптов на примере файлов с расширением ".doc".
В .htaccess:
RewriteRule ^(.*\.doc)$ download.php?file=$1
В download.php приведенный выше код.
Так же может пригодится rawurldecode (применять только к отдельным сегментам uri)
2010-08-31 18:32:42


