кирилические символы в Content-Disposition: attachment

zilon

Постоялец
Регистрация
30 Июл 2011
Сообщения
370
Реакции
146
проблема с кирицой в названии файлов, если в названии нету русских букв, всё нормально скачиваеться, а если есть то пишут что файл не найден, но файл есть

Warning: readfile(Клуб RAЙ - Кошмар на улице вязов (Mixed by dj Neele).php) [function.readfilefunction.readfile]: failed to open stream: No such file or directory in /var/www/newmuzo/data/www/scooter-vl.ru/muzon/club/3.php on line 6

PHP:
<?php
 
$filename="Клуб RAЙ - Кошмар на улице вязов (Mixed by dj Neele).php";
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile("$filename");
 
?>

подскажите пожалуйста как исправить :thenks:
 
Код:
$filename="Клуб RAЙ - Кошмар на улице вязов (Mixed by dj Neele).php";
$filename = iconv("cp1251","utf-8", $filename);
Или "cp1251","utf-8" местами поменять.

Если не поможет - вопросы:
Страница (сам файл) в cp1251? Файлы по FTP заливаются или браузером?
 
Файлы по FTP заливаются или браузером?

по ftp

решил проблему так, может кому пригодится, get ом передаётся заголовок файла вместе с расширением в перменную $filename и далее код для скачивания

PHP:
$h = fopen($filename, 'r');
      if($h) {
      header('HTTP/1.1 200 OK');
      header('Content-Type: application/force-download');
      header('Content-Length: ' . filesize($filename));
      header('Content-Description: File Transfer');
      header('Content-Disposition: attachment; filename="'.$filename.'"');
      header('Content-Transfer-Encoding: binary');
     
      fpassthru($h);
      fclose($h);
            } else { header('HTTP/1.1 403 Forbidden'); }
 
решил проблему так, может кому пригодится, get ом передаётся заголовок файла вместе с расширением в перменную $filename и далее код для скачивания
Изначальная ошибка - об отсутствии файла:

Failed to open stream: No such file or directory in /var/www/newmuzo/data/www/scooter-vl.ru/muzon/club/3.php on line 6
$filename при этих манипуляциях точно не менялся? (там, кстати по первому куску кода файл с расширением .php в браузер должен уйти.. всё ли верно?)
 
$filename при этих манипуляциях точно не менялся? (там, кстати по первому куску кода файл с расширением .php в браузер должен уйти.. всё ли верно?)

$filename должен лежать в тоже директории что и сам скрипт для скачивания иначе будет ошибка навсякий случай вот весь скрипт


 
esche, :eek: таки да если поменять расширение на mp3 файл будет скачиватся, но ошибку видно не будет...
 
Назад
Сверху