Я хотел бы переместить файлы в загрузках / pension / # SOME_VARIABLE_NUMBER # / # SOME_CONSTANT_NUMBER # /
вот мой код:
// move pension statements
// located at uploads/pension/%COMPANY_ID%/%USER_ID%/%HASH%
// so just move the %USER_ID% folder to the new company
$oldPensionDir = "uploads/pension/" . $demo_user[Users::companyID] . "/" . $demo_user[Users::userID] . "/";
$newPensionDir = "uploads/pension/" . $newCompanyID . "/" . $demo_user[Users::userID] . "/";
// see if the user had any files, and if so, move them
if(file_exists($oldPensionDir)) {
// if it doesnt exist, make it
if(!file_exists($newPensionDir))
mkdir($newPensionDir);
// move the folder
rename($oldPensionDir, $newPensionDir);
}
однако ... когда мне нужно создать каталог с помощью функции "mkdir", я получаю:
mkdir() [<a href='function.mkdir'>function.mkdir</a>]: No such file or directory
хорошо, возможно, mkdir не будет работать, но как насчет переименования? возможно, это сделает каталог, если его там нет ... Нет!
rename(uploads/pension/1001/783/,uploads/pension/1000/783/) [<a href='function.rename'>function.rename</a>]: The system cannot find the path specified. (code: 3)
Итак, есть две ошибки. я почти уверен, что переименование работает, мне даже не понадобится mkdir, но кто знает ... может кто-нибудь сказать мне, почему это ошибки и как их исправить?
спасибо!
РЕДАКТИРОВАТЬ: я изменил код, и теперь моя единственная проблема - проблема доступа ...
rename(uploads/pension/1000_783/,uploads/pension/1001/783/) [<a href='function.rename'>function.rename</a>]: Access is denied. (code: 5)
ниже новый код. в основном, я переименовываю его три раза (потому что он должен перемещаться по папкам, но последний шаг - это то, что вызывает ошибку «отказано в доступе». Странная часть в том, что даже когда я удаляю новый каталог и он создает новый установите для этого значение perms 0777 !!! что с этим не так?
// move pension and total reward statements
// located at uploads/pension|total_rewards/%COMPANY_ID%/%USER_ID%/%HASH%
// so just move the %USER_ID% folder to the new company
$oldPensionDir = "uploads/pension/" . $demo_user[Users::companyID] . "/" . $demo_user[Users::userID] . "/";
$tempPensionDir1 = "uploads/pension/" . $demo_user[Users::companyID] . "/" . $demo_user[Users::companyID] . "_" . $demo_user[Users::userID] . "/";
$tempPensionDir2 = "uploads/pension/" . $demo_user[Users::companyID] . "_" . $demo_user[Users::userID] . "/";
$newPensionDir = "uploads/pension/" . $newCompanyID . "/" . $demo_user[Users::userID] . "/";
// see if the user had any files, and if so, move them
if(file_exists($oldPensionDir)) {
// if it doesnt exist, make it
if(!file_exists($newPensionDir))
mkdir($newPensionDir, 0777, true);
// move the folder
// first, move it to the pension directory
rename($oldPensionDir, $tempPensionDir1);
rename($tempPensionDir1, $tempPensionDir2);
// second, move it into the new directory
rename($tempPensionDir2, $newPensionDir);
}