У меня есть программа загрузки файлов php. Я хочу добавить еще одну функциональность в программу, которая проверяет, существует ли тот же файл в каталоге.
Я хочу добавить что-то подобное моему коду :
if (file_exists("directory_name/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; }
И вот мой код загрузки файла php:
<?php $valid_formats = array("jpg", "png", "gif", "JPEG", "bmp", "JPG", "PNG", "GIF"); $max_file_size = 1024*500; //100 kb $path = "images/$_POST[fol]/"; // Upload directory $count = 0; if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ // Loop $_FILES to exeicute all files foreach ($_FILES['files']['name'] as $f => $name) { if ($_FILES['files']['error'][$f] == 4) { continue; } if ($_FILES['files']['error'][$f] == 0) { if ($_FILES['files']['size'][$f] > $max_file_size) { $message[] = "$name is too large!."; continue; } elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){ $message[] = "$name is not a valid format"; continue; } else{ if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) $count++; } } } } ?>
Как объединить оба? может ли кто-нибудь помочь?
Перед перемещением файла проверьте, существует ли файл или нет. Попробуйте что-то вроде
else{ if (file_exists($path.$name) { file already exixts } if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) $count++; }
Вот решение.
else{ if(!file_exists($path.$name)) { move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name); $count++; // Number of successfully uploaded file } else{ echo "File exists"; } }