我有这个奇怪的问题。
我的文件名为 1.jpg、2.jpg、3.jpg、4.jpg、5.jpg。
现在,我希望人们能够对它们进行排序,所以我想,例如,如果你想让 3 变成 2,你所要做的就是重命名 3.jpg ==> 1b.jpg。这使他介于 1 和 2 之间!
现在只需重命名文件夹中的所有文件,瞧!然而,这似乎不起作用......
我的代码是:
// Part 1
$fileUp = $_POST['imageURL'];
$url = $_SERVER['DOCUMENT_ROOT'].$fileUp;
$fileParts = pathinfo($fileUp);
$fileName = $fileParts['filename'];
$fileExt = $fileParts['extension'];
$fileFolder = $fileParts['dirname'];
$newName = $fileName - 2;
$newFullName = $newName . 'b.' . $fileExt;
$directory = $_SERVER['DOCUMENT_ROOT'].$fileFolder.'/';
rename($url, $directory.$newFullName);
// Part 2
$dirFiles = array();
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$dirFiles[] = $file;
}
}
closedir($handle);
}
sort($dirFiles);
$i = 1;
foreach($dirFiles as $file)
{
$fileParts = pathinfo($file);
$fileExt = $fileParts['extension'];
$newName = $i . '.' . $fileExt;
rename($directory.$file, $directory.$newName);
$i++;
}
第 1 部分实质上重命名了要升级的文件。这行得通!但是,如果我随后使用 readdir 重新加载文件,则该图像不在应有的位置(通常在最后)。
所以第 2 部分是关于重命名所有文件。但是,当我启用第 2 部分时,要升级的图像之前的图像消失了!
例如,如果我有“1.jpg, 2.jpg, 3.jpg”,并且我想升级 2.jpg,我最终会得到:“2.jpg, 3.jpg”(2 和 3 Haven) t改了名字,1.jpg就消失了……)
非常感谢所有帮助!