Файл, переносящий мою папку для загрузки, работает хорошо, но у меня есть предупреждение в mkdir . Он говорит, что файл существует, но картинка и папка генерируют собственное имя. Я не знаю, какое предупреждение определяет.
Кто-нибудь может мне помочь?
include('connect.php'); $dir=substr(uniqid(),-7); // Uniqid for subdirectory $path = "uploads/$dir/"; // uploads/subdirectory/ // Make directory $valid_formats = array("jpg", "png", "jpeg", "kml"); $max_file_size = 2097152; $count = 0; // Loop $_FILES to execute all files if(!empty($_FILES)){ foreach($_FILES['files']['name'] as $f => $name) { if ($_FILES['files']['error'][$f] == 4) { continue; // Skip file if any error found } if ($_FILES['files']['error'][$f] == 0) { if ($_FILES['files']['size'][$f] > $max_file_size) { $message[] = "$name is too large!."; continue; // Skip large files } elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){ $message[] = "$name is not a valid format"; continue; // Skip invalid file formats } else{ // No error found! Move uploaded files mkdir($path, 0700); $ext = pathinfo($_FILES['files']['name'][$f], PATHINFO_EXTENSION); $uniq_name = substr(uniqid(),-5) . '.' .$ext; $dest = $path . $uniq_name; if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $dest)){ $qry = "INSERT INTO files (code, name, path, type) VALUES ('$dir','$uniq_name','$dest','$ext')" ; $result = mysqli_query($dbc, $qry); if ( false===$result ) { $sql_error .= 'Error in the query '.$qry.' Error Desc :'.mysqli_error($dbc).'<br /><br />' ; } } } } }}
Предупреждение тихо, вы создаете каталог, который уже существует. Так что просто измените это,
if (!file_exists($path)) { mkdir($path, 0700); }
Используйте PHP is_dir($path_to_dir)
для проверки того, существует ли каталог раньше.
Официальная документация