Я хочу сделать что-то подобное - пользователь может загружать только файлы 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;
}