如何使用PHP将文件存储库复制到新文件夹

问题描述:

我的管理文件夹中有一个名为“存储库”的文件夹。该文件夹包含2个文件:index.html和content.php。当用户创建一个新页面时,php会创建一个由用户指定的新文件夹,然后需要将这两个文件复制到该文件夹​​中,同时将它们留在存储库中。如何使用PHP将文件存储库复制到新文件夹

副本(文件,目标)不起作用。 重命名(文件,目标)将文件移动到新文件夹,但我失去了它们在存储库中。

如何将一个文件夹中的文件复制到新文件夹而不丢失原始文件夹中的文件?

$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。此外,该目录是创建没有问题。重命名()也有效我只是丢失了存储库中的文件。

+1

副本应该工作。请发布您的代码。 – Josh 2010-03-11 17:25:13

+0

$ dest ='../'.$menuLocation.'/'.$pageName; $ file1 =“repository/index.html”; $ file2 =“repository/content.php”; mkdir($ dest,0777); 重命名($ file1,$ dest。'/ index.html'); 重命名($ file2,$ dest。'/ content.php'); $ menuLocation和$ pageName由用户提供。我的文件在那里,file_exists返回true。 – dcp3450 2010-03-11 17:31:08

+0

感谢编辑戈登。我没有注意到,直到我添加了评论。今天忙碌,大脑分散注意力。 – dcp3450 2010-03-11 17:39:04

对于任何狩猎解决这个:

在PHP中使用副本()的时候,你还需要包括文件名。

copy(orginalfile,destination_with_filename); 

例如:

错误:

copy('/temp/sports/basketball.jpg','/images/sports/') 

正确:

copy('/temp/sports/basketball.jpg','/images/sports/basketball.jpg') 

使用copy()。确保你捕获了返回值,以便你的程序知道它是否工作。还要检查文件和目录的权限,以确认执行PHP脚本的用户能够在指定的位置创建新文件。您可能需要在目录上使用is_writable()来确认这些假设。