Я хочу загрузить файлы с помощью PHP, и я использую move_uplload_files, чтобы скопировать их в нужную папку, которую я хочу, все отлично работает с этим:
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/')) die("success"); else die("error");
Но когда я пробую это
$rand = chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122)); if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand)) die("success"); else die("error");
Я получу ошибку, и похоже, что move_uploaded_files не может создавать папки. Как я могу это сделать ?
В основном я ищу способ сделать это, как file_put_contents()
который создает путь, если не существует.
Используйте mkdir()
.
Если вам нужно сделать несколько папок, например, передав a/b/c
, установите третий аргумент в значение TRUE
.
Вы можете проверить, есть ли он там, и добавить, если не так …
$path = 'abc'; if ( ! is_dir($path)) { mkdir($path); }
Используйте что-то вроде этого:
$folder = "uploads"; if(!is_dir($folder)) mkdir($folder);
is_dir()
проверяет, существует ли папка.
Сначала создайте каталог, используя mkdir()
$rand = chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122)); mkdir('./uploades/'.$rand); if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand)) die("success"); else die("error");
Это работает для меня:
$path = "upload/"; $name = $_FILES["file"]["name"]; // Remove dangerous characters from filename. $name = str_replace('..', '', $name); $name = str_replace('/', '', $name); $name = str_replace('\\', '', $name); if (($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") && ($_FILES["file"]["size"] < 2000000)) { if ($_FILES["file"]["error"] > 0) { echo "Error " . $_FILES["file"]["error"] . "<br>"; } else { if(file_exists($path.$name)){ echo "$path$name already exists. "; } else { @mkdir($path, 0666, true); // Create non-executable upload folder(s) if needed. move_uploaded_file($_FILES["file"]["tmp_name"], $path.$name); echo "Stored in: $path$name"; } } } else { echo "Invalid file. Allowed are JPG smaller than 2 MB."; }
if($_FILES['file_up']['type']=='image/jpeg' || $_FILES['file_up']['type']=='image/png' || $_FILES['file_up']['type']=='image/gif') { move_uploaded_file($_FILES['file_up']['tmp_name'],'uploads/'.time().$_FILES['file_up']['name']); } else { echo "Upload only image file.."; }