Поэтому я попытался использовать функцию rename()
, как описано, и продолжал получать сообщение об ошибке, что было no such file or directory
. Я поместил код в оператор if else, чтобы убедиться, что я действительно создал каталоги. Выглядело это так:
$tempDir = '/home/site/images/tmp/';
$permanentDir = '/home/site/images/' . $claimid; // this was stored above
mkdir($permanentDir,0775);
if(is_dir($permanentDir)){
echo $permanentDir . ' is a directory';
if(is_dir($tempDir)){
echo $tempDir . ' is a directory';
}else{
echo $tempDir . ' is not a directory';
}
}else{
echo $permanentDir . ' is not a directory';
}
rename($tempDir . "*", $permanentDir);
Поэтому, когда я снова запустил код, оказалось, что оба пути были каталогами. Я был в тупике. Я поговорил с коллегой, и он предложил: «Почему бы просто не переименовать временный каталог в новый каталог, так как вы все равно хотите переместить все файлы?»
Оказывается, это то, что я закончил. Я прекратил попытки использовать подстановочный знак с функцией rename()
и вместо этого просто использовал rename()
, чтобы переименовать временный каталог в постоянный.
так это выглядит.
$tempDir = '/home/site/images/tmp/';
$permanentDir = '/home/site/images/' . $claimid; // this was stored above
mkdir($permanentDir,0775);
rename($tempDir, $permanentDir);
Это прекрасно работает для моих целей, так как мне не нужно, чтобы старый каталог tmp оставался там после того, как файлы были загружены и «перемещены».
Надеюсь, это поможет. Если кто-нибудь знает, почему подстановочный знак не работает в функции rename()
и почему я получаю сообщение об ошибке, описанное выше, пожалуйста, дайте мне знать.