Как скопировать репозиторий файлов в новую папку с помощью PHP
Вопрос
У меня есть папка с именем «репозиторий» в папках администратора.В этой папке находятся 2 файла:index.html и content.php.Когда пользователь создает новую страницу, php создает новую папку, указанную пользователем, а затем ему нужно будет скопировать два файла в эту папку, оставив их в репозитории.
копирование (файл, место назначения) не работает.rename(file,dest) перемещает файлы в новую папку, но я теряю их в репозитории.
Как скопировать файлы из одной папки в новую папку, не теряя файлы в исходной папке?
$dest = '../'.$menuLocation.'/'.$pageName;
$file1= "repository/index.html";
$file2= "repository/content.php";
mkdir($dest,0777);
rename($file1,$dest.'/index.html');
rename($file2,$dest.'/content.php');
$menuLocation и $pageName предоставляются пользователем.Файлы есть, file_exists возвращает true.Кроме того, каталог создается без проблем.rename() также работает, я просто теряю файлы в репозитории.
Решение
Для тех, кто ищет решение этой проблемы:
при использовании copy() в php вам также необходимо указать имя файла.
copy(orginalfile,destination_with_filename);
например:
неправильный:
copy('/temp/sports/basketball.jpg','/images/sports/')
Правильный:
copy('/temp/sports/basketball.jpg','/images/sports/basketball.jpg')
Другие советы
Используйте копирование().Обязательно запишите возвращаемое значение, чтобы ваша программа знала, сработало оно или нет.Также проверьте права доступа к файлам и каталогу, чтобы убедиться, что пользователь, выполняющий PHP-скрипт, может создать новый файл в указанном вами месте.Возможно, вам захочется использовать is_writable() для каталога, чтобы подтвердить эти предположения.