Перенос файлов в новые каталоги - PullRequest
0 голосов
/ 04 мая 2020

Мне просто нужен простой код для переноса файлов в новые каталоги с именами переменных.

Например, вот фрагмент моего кода, он очень прост, см. Вложение

Как вы видите, это страница регистрации, когда пользователь создается, затем создается токен, создается папка с именем пользователя, которая в данном случае является переменной, в конце она создает папку и, наконец, отправляет подтверждение электронная почта через php mailer.

Я хочу, чтобы после того, как папка, о которой я упоминал ранее, была создана после регистрации пользователя, ей нужно автоматически скопировать все файлы (. ), расположенные в: temp / account / profile в новый созданный каталог, например:

temp / accounts / profile / newuser

Я пытался сделать это, но так как новый каталог зависит от ввода имени пользователя, это переменная, и я ' Я не уверен, как построить этот запрос для успешной передачи файлов после регистрации пользователя. enter image description here

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Вам нужно найти все файлы и скопировать их по одному. Если вам нужно скопировать каталоги, вам придется реализовать рекурсивную копию, в этом случае вы можете использовать is_dir в вашем l oop, чтобы проверить, является ли имя файла каталогом.

<?php
$source = 'temp/accounts/profile/newuser';
$destination = 'temp/accounts/profile/' . $name;
$files = glob($source . "/*.*"); //Find all files
foreach($files as $filename){
    copy($filename, $destination . "/" . basename($filename));
}
?>
0 голосов
/ 04 мая 2020

L oop содержимое из одного каталога и скопировать его в новый.

$targetDir = 'temp/accounts/profile/newuser';
//of course create this folder first if it doesn't exist
mkdir($targetDir);

// Scan the directory and retrieve all files
// `array_diff` is to clean out directory thingies than can persist
foreach(array_diff(scandir($dirname), ['.','..']) as $val){

   copy("$dirname/$val", "$targetDir/$val");

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...