Использование copy () в функции php

В моем нынешнем виде мои файлы отображаются в массиве, и я пытаюсь создать функцию для создания копии файла в каталоге пользователей в том виде, в каком он есть. Моя функция выглядит следующим образом:

function copyFile($dir, $fileToCopy){
if (is_dir($dir)) {
if ($dirHandle = opendir($dir)) {
$files = array_diff(scandir($dir), array('.', '..', '.htaccess'));
if($files){
foreach($files as $file){
if($file === $fileToCopy) {
copy($dir."\\".$fileToCopy, $dir."\\");
$output = 'Successfully copied file: '.$fileToCopy;
}
}
}
}
}
return $output;
}
if(isset($_POST)){
echo copyFile($_SESSION['UserFolder'], $_POST['fileToCopy']);
}

Вывод выдается, когда я нажимаю кнопку, чтобы скопировать файл, но ничего не происходит с копируемым файлом, код кнопок выглядит так:

'<form action="MyFiles.php" method="POST"><input type="hidden" value="'.$file.'" name="fileToCopy"/><input type="submit" value="Copy" name="copyButton"/></form>'

надеюсь, я объяснил достаточно хорошо, хотелось бы получить обратную связь

1

Решение

Причина, по которой он не копируется, заключается в том, что вы не даете ему новое имя, поэтому по сути он просто перезаписывает один и тот же файл. Попробуйте добавить ‘copy’ после этого следующим образом:

copy($dir."\\".$fileToCopy, $dir."\\".$fileToCopy."copy");
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]