所以我想在php中使用rename函数。php rename()访问被拒绝。 (代码:5)
第一次尝试时,如果目标文件夹为空或者不包含与源文件夹名称相同的任何目录,则重命名功能可以完美工作。但是,如果有相同的目录名称,则失败。我想要的只是覆盖它,我认为重命名()就足够了。
这里是我的代码:
/**
* Move temp folders to their permanent places
*
* $module_folder = example (violator, pnp, etc)
* $folders = name of folders within module_folder
**/
public function move_temp_to_permanent($module_folder, $folders){
$bool = false;
$module_folder_path = realpath(APPPATH . '../public/resources/temps/' . $module_folder);
$module_folder_destination_path = $_SERVER['DOCUMENT_ROOT'] . '/ssmis/public/resources/photos/' . $module_folder . '/';
foreach($folders as $folder){
$bool = rename($module_folder_path . '/' . $folder, $module_folder_destination_path . $folder);
}
return $bool;
}
上面的代码给了我一个错误说:
消息: 重命名(C:\ XAMPP \ htdocs中\ SSMIS \ PUBLIC \资源\临时工\违反者/ SJ-VIOL-2015-0002,C:/ xampp/htdocs/ssmis/public/resources/photos/violator/SJ-VIOL-2015-0002): 访问被拒绝。 (代码:5)
我使用CodeIgniter作为框架。
非常感谢!
检查文件权限。 – panther
我可以像上面所说的那样成功地使用rename()。但是,当我尝试使用它将源文件夹移动到与资源名称相同的目标文件夹时,就会发生错误。我是否仍然需要检查文件权限,因为我能够在目录上编写? – iamjc015
你不能在一个目录中使用同名的文件夹,你需要检查相同的名字,如果需要,可以合并内容。 –