gpt4 book ai didi

php rename() 访问被拒绝。 (代码 : 5)

转载 作者:可可西里 更新时间:2023-11-01 12:48:22 25 4
gpt4 key购买 nike

所以我想在 php 中使用重命名功能。

第一次尝试时,如果目标文件夹为空或不包含任何与源文件夹同名的目录,重命名功能将完美运行。但是,如果存在相同的目录名称,则会失败。我想要的只是覆盖它,我认为 rename() 就足够了。

这是我的代码:

/**
* 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;
}

上面的代码给我一个错误提示:

Message: rename(C:\xampp\htdocs\ssmis\public\resources\temps\violator/SJ-VIOL-2015-0002,C:/xampp/htdocs/ssmis/public/resources/photos/violator/SJ-VIOL-2015-0002): Access is denied. (code: 5)

我正在使用 CodeIgniter 作为框架。

非常感谢!

最佳答案

如果是在 Windows 上,可以在贡献中阅读:

rename() definitely does not follow the *nix rename convention on WinXP with PHP 5. If the $newname exists, it will return FALSE and $oldname and $newname will remain in their original state. You can do something like this instead:

function rename_win($oldfile,$newfile) {
if (!rename($oldfile,$newfile)) {
if (copy ($oldfile,$newfile)) {
unlink($oldfile);
return TRUE;
}
return FALSE;
}
return TRUE;
}

Link .

关于php rename() 访问被拒绝。 (代码 : 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30077379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com