#php #laravel #laravel-storage #laravel-filesystem
#php #laravel #laravel-хранилище #laravel-файловая система
Вопрос:
Итак, как сказано в названии, я изо всех сил пытаюсь скопировать папку в другую папку
Я пробовал это, но безрезультатно
Редактировать: я заставил это работать, исправив переменную $ npath, я просто указывал URL-адрес без имени папки $npath = $newk->url;
итак, окончательный код будет :
public function copyFolder(Request $request)
{
$id= $request->get('oldf');
$new = $request->get('newf');
$document = Document::find($id);
$newk = Document::find($new);
$npath = $newk->url.'/'.$document->nom;
$file= new Filesystem();
if($file->copyDirectory($document->url, $npath)){
return redirect('home');
}
return redirect('home');
}
буду признателен за любую помощь 🙂
Комментарии:
1. Вы проверили в своей файловой системе, что папка на самом деле не копируется? У вас один и тот же результат в вашей функции, независимо от того, было ли действие успешным или нет.
2. Я проверил, но ничего не произошло
Ответ №1:
используйте эту функцию
function recursive_files_copy($source_dir, $destination_dir)
{
// Open the source folder / directory
$dir = opendir($source_dir);
// Create a destination folder / directory if not exist
if (!is_dir($destination_dir)){
mkdir($destination_dir);
}
// Loop through the files in source directory
while($file = readdir($dir))
{
// Skip . and ..
if(($file != '.') amp;amp; ($file != '..'))
{
// Check if it's folder / directory or file
if(is_dir($source_dir.'/'.$file))
{
// Recursively calling this function for sub directory
recursive_files_copy($source_dir.'/'.$file, $destination_dir.'/'.$file);
}
else
{
// Copying the files
copy($source_dir.'/'.$file, $destination_dir.'/'.$file);
}
}
}
closedir($dir);
}
Комментарии:
1.
File::copyDirectory
уже копирует рекурсивно .2. должен ли я поместить его в контроллер или куда?
3. @Dan Я пытался также указать путь вручную, используя только «», но никаких результатов вообще