Как скопировать репозиторий файлов в новую папку с помощью PHP

StackOverflow https://stackoverflow.com/questions/2427143

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня есть папка с именем «репозиторий» в папках администратора.В этой папке находятся 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() для каталога, чтобы подтвердить эти предположения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top