Проверка изображения php с проверкой zip

Я создаю сценарии проверки PHP-изображения и проверки zip-файла. Мой скрипт проверки zip-файла работает, но я добавил проверку изображения, но он не работает. Я хочу добавить тип файла изображения jpeg, тип файла png, который я пытался сделать, но это не работает.

Вот мой код

if ($_FILES['fileImage']['tmp_name'][0] != "fileImage/jpg") {
die($_FILES['fileImage']['name'][0] . " is not a valid image file.");
exit;
}

$z = zip_open($_FILES['fileImage']['tmp_name'][4]);
if (!is_resource($z)) {
    die($_FILES['fileImage']['name'][4] . " is not a valid ZIP file.");
}
zip_close($z);
stackoverflow.com/questions/10368217/…
tonoslfx 29.01.2019 23:25

я добавил и проверил, что эта ссылка не работает, получая те же результаты

user10896846 29.01.2019 23:34
$_FILES['fileImage']['tmp_name'][0] != "fileImage/jpg" ??? сколько файлов? что это за файл??
Professor Abronsius 29.01.2019 23:37

jpeg/png/gif/ и я включил 4 файла изображения

user10896846 29.01.2019 23:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
156
2

Ответы 2

Я бы сначала проверил временный файл с помощью mime_content_type. Результат не зависит от расширения файла, которым было бы легко манипулировать. После этого дальнейшая обработка может завершить проверку.

$tmpFile = $_FILES['fileImage']['tmp_name'];
switch ($mimeType = mime_content_type($tmpFile)) {
  case 'application/zip':
    //... process zip ... zip_open, etc
    break;
  case 'image/jpeg':
    //... process image ... getimagesize etc.
    break;
  default:
    die('Unknown filetype "' . $mimeType . '".');
}

сообщение об ошибке выглядит следующим образом: Неустранимая ошибка: вызов неопределенной функции mime_content_type() в C:\xampp\htdocs\zblog\upload-source.php в строке 242

user10896846 29.01.2019 23:58

В Windows вам нужно сначала включить расширение, отредактировать php.ini, раскомментировав и указав mime_magic.magicfile на правильное имя файла, содержащее mimetypes, добавить или раскомментировать extension=php_fileinfo.dll и раскомментировать строку в httpd.conf, содержащую «LoadModule . .. mod_mime_magic.so".

Dolph Roger 30.01.2019 00:27

Попробуйте следующий код.

$tempFile = $_FILES['file']['name'];

// Get the file extension
$fileExt = pathinfo($tempFile, PATHINFO_EXTENSION);

// Allowed extensions
$imageExt = ['jpg', 'png', 'gif'];
$compressExt = ['rar', 'zip'];

// Validation
if ( !in_array($fileExt, $imageExt) ) {
  die('Not image format');
} elseif ( !in_array($fileExt, $compressExt) ) {
  die('No compression format');
} else {
  // proceed
}

ошибка выглядит следующим образом Предупреждение: pathinfo() ожидает, что параметр 1 будет строкой, массив указан в C:\xampp\htdocs\zblog\upload-source.php в строке 245 Не формат изображения

user10896846 30.01.2019 17:32

Другие вопросы по теме