Как я могу скопировать папку в другую папку с помощью Laravel?

#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 Я пытался также указать путь вручную, используя только «», но никаких результатов вообще