|
|
|
| Не получается сохранить файлы (.doc .docx .txt) с сервера на локальный компьютер.
Делаю по такому принципу:
$file_name = $_GET['fn'];
if(ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])) $UserBrowser = "Opera";
elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])) $UserBrowser = "IE";
else $UserBrowser = '';
$mime_type = ($UserBrowser == 'IE' || $UserBrowser == 'Opera') ? 'application/octetstream' : 'application/octet-stream';
header('Content-Type: ' . $mime_type);
header('Content-Encoding: none');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
if ($UserBrowser == 'IE') {
header('Content-Disposition: inline; filename="'.$file_name.'"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
}
else {
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header('Pragma: no-cache');
}
$path = 'http://'.$_SERVER['HTTP_HOST'].'/files/'.$file_name;
fpassthru(fopen($path,"rb"));
|
В итоге вылезает ошибка, типо заголовки уже были отправленны:
Warning: Cannot modify header information - headers already sent by...
|
Потом дописал в файл .htaccess такую фишку php_flag output_buffering 1
Файлы начали скачиваться, но с непонятной кодировкой, вместо нормального текста непонятные символы.
И как бороться с этим делом, никак узнать не могу.
Подскажите пожалуйста если кто нибудь знает. | |
|
|
|
|
автор: .heed (10.03.2010 в 22:54) |
|
|
для: kostya
(10.03.2010 в 20:40)
| | вместо php_flag output_buffering 1 нужно было разбираться почему headers already sent by
поиск таких слов здесь помогает.
Или возможно вам поможет если знаете что такое BOM и как с этим бороться.
если не решили оставаться только на той версии php которая сейчас , то сразу думайте чем заменять ereg
чтобы в новых версиях не возникло проблем.
А вообще я-бы сначала проверял есть-ли вообще $_GET['fn'], и что в ней передав ../../ должно быть можно посмотреть что за главная страничка того сайта :) с которого умыкаете контент | |
|
|
|
|
|
|
|
для: .heed
(10.03.2010 в 22:54)
| | >вместо php_flag output_buffering 1 нужно было разбираться почему headers already sent by
>поиск таких слов здесь помогает.
>Или возможно вам поможет если знаете что такое BOM и как с этим бороться.
Я поработаю над этим, спс.
>А вообще я-бы сначала проверял есть-ли вообще $_GET['fn'], и что в ней передав ../../ должно быть можно посмотреть что за главная страничка того сайта :) с которого умыкаете контент
Это мой сайт, я контент не мыкаю :)
Вот на этой страничке http://oki.ivanstyle.ru/events/tender/0/0 ссылки на файлы, можете посмотреть )
В переменную $_GET['fn'] передаётся имя файла, например text.txt | |
|
|
|