непонятный касяк со скриптом в Опера.

Печать RSS
89

В
Автор
Чатланин
0
<?php
//Пакуем всё в архив---------        
        $tmp_dir=D.'/dir/src';//то что нужно паковать
        $zip_file=D.'/dir/name.zip';
        @unlink($zip_file);
        $zip=new PclZip($zip_file);
        $zip->create($tmp_dir, PCLZIP_OPT_REMOVE_PATH,D.'/dir/src');
      
        $contents=file_get_contents($zip_file);        
       
        header("Content-type: application/zip");
        echo $contents;
        exit;
        //--------------------------
?>
Такой вот код.. Собирает архив, и выдаёт его в браузер.
На денвере работает отлично. Но если установить скрипт на сервак, архив скачивается, но не открывается. Его можно открыть текстовым редактором, и видно, что в нём html код страницы, с которой производилось скачивание (чё за бред?)
Если же скачать сгенерированный архив по фтп, то он оказывается нормальным.. т.е. вроде бы архив генерируется правильно, но почему то не отдаётся.

Добавлено через 02:56 сек.
Ещё бредовее то, что если убрать header("Content-type: application/zip"); то в браузер выдается именно архив (в виде каракуль на экране), а не html код.

Добавлено через 07:50 сек.
Заметил, что касяк наблюдается в Опере, а в Firefox всё ок.
Изменил: Валерий (17.04.2011 / 14:34)
M

Пацак
0
аверное вы уже не раз сталкивались с проблемой, при попытке скачать файл через браузер Opera последней версии. При нажатии на ссылку для скачивания файла ничего не происходит или же файл начинает открываться прямо в браузере и мы видим иероглифы. Этот баг появился еще в 10 версии браузера и чтобы скачать файл я нажимал правой кнопкой мыши по ссылке и выбирал пункт в меню "Сохранить по ссылке как".

Из за чего же это?

Все очень просто, сервер отдает в HTTP заголовках MIME тип файла, в строке "Content-type". Глядя на mime тип файла браузер должен определить что с ним делать, но многие веб серверы отдают неверные заголовки и опера действует согласно представленному типу данных. Все это из-за того, что администраторам лень настроить свой сервер и добавить все популярные MIME типы для файлов.

В других браузерах файлы скачиваются нормально, поскольку они не верят типу, который передает сервер, а действуют согласно расширению загружаемого файла.

Добавлено через 02:47 сек.
http://habrahabr.ru/blogs/opera/99654/

Добавлено через 03:58 сек.
Не ты первый, гугл пробуй всегда поможет
В
Автор
Чатланин
0
2. видимо проблему не понял.. Тип документа определяется как надо, но качает что то не то, либо вообще не качает.

Добавлено через 08:34 сек.
Ладно, не важно.. проблему я не решил, просто сделал по другому, и проблема почему то исчезла. Не знаю как так получилось.. ну да ладно. Тему крою.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск