22.07.2021
Рассмотрим несколько примеров переноса файлов из одной папки в другую на php
Если папка в которую переносим уже существует!
Тут все элементарно, просто используем функцию rename()
// указываем путь текущего файла и куда его переносим rename("/folder_1/image.jpg", "/folder_2/image.jpg");
Тут нам просто нужно дописать проверку на существование нужной папки и если её нет, то создать.
// файл, который нужно перенести $oldFilePath = "/folder_old/file.txt"; // новый путь этого файла $newFilePath = "/folder_new/some_folder/file.txt"; // Получаем адрес директории нового пути $newFolderPath = pathinfo($newFilePath)["dirname"]; // смотрим, есть ли нужная новая директория или пытаемся её создать if(file_exists($newFolderPath) || mkdir($newFolderPath, 0777, true)) { // перемещаем rename($oldFilePath, $newFilePath); }
// массив с полными путями файлов для переноса $moveToDelete = [ "/home/bitrix/content/uploads/aaa/bbb/skin.png", "/home/bitrix/content/uploads/aaa/aaa.png", ]; // перебираем файлы foreach($moveToDelete as $filePathToMove){ $newFilePath = $newFolderPath = ""; // новый путь до файла. Тут может быть любая ваша логика, я просто подменяю нужный путь $newFilePath = str_replace("/content/uploads/","/content/NEW_FOLDER/uploads/", $filePathToMove); // Получаем адрес директории нового пути $newFolderPath = pathinfo($newFilePath)["dirname"]; // смотрим, есть ли нужная новая директория или пытаемся её создать if(file_exists($newFolderPath) || mkdir($newFolderPath, 0777, true)) { // перемещаем rename($filePathToMove, $newFilePath); } }
После переноса файлов может понадобится Удалить пустые папки на PHP