Безопасная загрузка rar zip php - PullRequest
0 голосов
/ 07 мая 2020

Я хочу сделать что-то подобное - пользователь может загружать только файлы ZIP и RAR.

Не знаю почему, но эта функция не работает.

Не могу загрузить * .exe или * .exe.rar - то ОК

НО

Не могу загрузить * .rar

Все время error "Вероятно, это не файл RAR или ZIP."

  protected function isRarOrZip($filename) {
            // get the first 7 bytes
            $bytes = file_get_contents($filename, FALSE, NULL, 0, 7);
            $ext = strtolower(substr($filename, - 4));

            // RAR magic number: Rar!\x1A\x07\x00
            // http://en.wikipedia.org/wiki/RAR
            if ($ext == '.rar' and bin2hex($bytes) == '526172211a0700') {
                return TRUE;
            }

            // ZIP magic number: none, though PK\003\004, PK\005\006 (empty archive), 
            // or PK\007\008 (spanned archive) are common.
            // http://en.wikipedia.org/wiki/ZIP_(file_format)
            if ($ext == '.zip' and substr($bytes, 0, 2) == 'PK') {
                return TRUE;
            }

            return FALSE;
        }

    if($this->isRarOrZip($this->temp_path6)) {
          $this->messages[] = "It is probably a RAR or ZIP file.";
        } 
        else 
        {
         $this->errors[]  = "It is probably not a RAR or ZIP file.";
            return false;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...