我的管理文件夹中有一个名为“repository”的文件夹。此文件夹包含2个文件:index.html和content.php。当用户创建新页面时,php会创建一个由用户指定的新文件夹,然后需要将这两个文件复制到该文件夹中,同时将它们保存在存储库中。
copy(file,dest)不起作用。 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()也有效我只是丢失了存储库中的文件。
答案 0 :(得分:1)
对于任何寻求解决方案的人来说:
在php中使用copy()时,还需要包含文件名。
copy(orginalfile,destination_with_filename);
例如:
错误:
copy('/temp/sports/basketball.jpg','/images/sports/')
正确:
copy('/temp/sports/basketball.jpg','/images/sports/basketball.jpg')
答案 1 :(得分:0)
使用copy()。确保捕获返回值,以便程序知道它是否有效。还要检查文件和目录的权限,以确认执行PHP脚本的用户是否能够在您指定的位置创建新文件。您可能希望在目录上使用is_writable()来确认这些假设。