Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 PHP ошибка при скачивания и откывания .rar, .zip файлов.  [new]
Rustam Ergashev
Member

Откуда:
Сообщений: 189
PHP ошибка при скачивания и откывания .rar, .zip файлов. При открытия файла ошибка "Архив повреждён или имеет неизвестный формат".
ссылка для скачки
<a href='download.php?f=$filename'>Файл</a>

php скрипт
 
if (!empty($_GET['f']))
 {
  $file = "uploads/".$_GET['f'];
  header ("Content-Type: application/octet-stream");
  header ("Accept-Ranges: bytes");
  header ("Content-Length: ".filesize($file));  
  header ("Content-Disposition: attachment; filename=". basename($file));  
  readfile($file);
 }
23 янв 19, 10:25    [21791835]     Ответить | Цитировать Сообщить модератору
 Re: PHP ошибка при скачивания и откывания .rar, .zip файлов.  [new]
vkle
Member

Откуда: Самара
Сообщений: 14450
Много раз обсуждалось. В начале вылазят из скрипта на вывод пробелы, табуляция, переводы строки, BOM.

автор
$file = "uploads/".$_GET['f'];
В принципе, можно скачать абсолютно любой файл, включая скрипты.
23 янв 19, 10:41    [21791853]     Ответить | Цитировать Сообщить модератору
 Re: PHP ошибка при скачивания и откывания .rar, .zip файлов.  [new]
Rustam Ergashev
Member

Откуда:
Сообщений: 189
у меня для скачки ест 4 вида файлов jpg/pdf/rar/zip. Проблема только с rar и zip файлами. но они на TotalCommander тоже открывается. но в проводнике и в браузере выдаёт ошибку "Архив повреждён или имеет неизвестный формат".
23 янв 19, 12:20    [21791967]     Ответить | Цитировать Сообщить модератору
 Re: PHP ошибка при скачивания и откывания .rar, .zip файлов.  [new]
vkle
Member

Откуда: Самара
Сообщений: 14450
Сравните первые несколько байт исходного и принятого файлов. Если увидите разницу - ищите причины ее появления.
23 янв 19, 12:28    [21791973]     Ответить | Цитировать Сообщить модератору
 Re: PHP ошибка при скачивания и откывания .rar, .zip файлов.  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 16241
header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
23 янв 19, 15:41    [21792339]     Ответить | Цитировать Сообщить модератору
 Re: PHP ошибка при скачивания и откывания .rar, .zip файлов.  [new]
Rustam Ergashev
Member

Откуда:
Сообщений: 189
Вчера код поменял на это и все скачалось без ошибок.
 if (!empty($_GET['f'])){
    $file = "uploads/".$_GET['f'];
    if (ob_get_level()) { ob_end_clean(); }
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
 }


Спасибо за помощ.
24 янв 19, 06:55    [21792804]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить