Прод. на
Опять же, форма:
<html> <head></head> <body> <form action="add.php" method="post" enctype="multipart/form-data"> File 1: <input type="file" name="file1" /> File 2: <input type="file" name="file2" /> <input type="submit" name="submit" value="ADD"> </form> </body> </html>
Пользователь может подключать только jpg, jpeg, gif и png. Вот мое требование:
(1) Если пользователь загружает файл jpg в файл 1 —> является файлом изображения
(2) Если пользователь загружает файл psd в файл 1 —> не является файлом изображения
(3) Если пользователь загружает файл jpg в файле 2 —> является файлом изображения
(4) Если пользователь загружает файл psd в файл 2 —> не является файлом изображения
(5) Если пользователь загружает файл jpg в файл 1, файл psd в файле 2 —> не является файлом изображения
(6) Если пользователь загружает файл psd в файл 1, файл jpg в файле 2 —> не является файлом изображения
(7) Если пользователь загружает файл jpg в файл 1 и файл 2 —> является файлом изображения
Вот код, который я пробовал:
<?php if(isset($_POST['submit']) && ($_POST['submit'] == 'ADD')) { if(empty($_FILES['file1']['name']) && empty($_FILES['file2']['name'])) { echo '2 files empty'; } else { //HERE $allowed_extensions = array('jpg','jpeg','gif','png'); foreach($_FILES as $file) { $name = $file['name']; if(!empty($name)) { $fileextension = strtolower(pathinfo($name, PATHINFO_EXTENSION)); if(in_array($fileextension, $allowed_extensions)) { echo 'is an image file'; } else { echo 'is not an image file'; } } } } }
Когда я загружаю файл jpg в файл 1 и файл psd в файл 2, я получаю следующий вывод:
является файлом изображения
не является файлом изображения
Но мой ожидаемый результат – это только шоу «не файл изображения». Что я делаю не так?
Как продолжить его в разделе «ЗДЕСЬ»? Кто-то может мне помочь?
Попробуйте это
Outside loop объявляет переменную $flag = 0;
if(in_array($fileextension, $allowed_extensions)) { $flag == 0 ? 0 : 1; // its image here, but check if flag is already 1,if 1, dont update else make as 0 } else { $flag = 1; // error }
после цикла foreach
добавьте этот код.
if($flag) { echo 'is not an image file'; } else { echo 'is an image file'; }
РЕДАКТИРОВАТЬ
<?php if(isset($_POST['submit']) && ($_POST['submit'] == 'ADD')) { if(empty($_FILES['file1']['name']) && empty($_FILES['file2']['name'])) { echo '2 files empty'; } else { //HERE $allowed_extensions = array('jpg','jpeg','gif','png'); foreach($_FILES as $file) { $name = $file['name']; if(!empty($name)) { $fileextension = strtolower(pathinfo($name, PATHINFO_EXTENSION)); if(in_array($fileextension, $allowed_extensions)) { $flag == 0 ? 0 : 1; // its image here, but check if flag is already 1,if 1, dont update else make as 0 } else { $flag = 1; // error } } } if($flag) { echo 'is not an image file'; } else { echo 'is an image file'; } } }