ฉันมีปัญหาแปลก ๆ นี้
ฉันมีไฟล์ชื่อ 1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg
ตอนนี้ ฉันต้องการให้ผู้คนสามารถจัดเรียงพวกมันได้ ดังนั้นฉันคิดว่าถ้าคุณต้องการให้ 3 กลายเป็น 2 เป็นตัวอย่าง สิ่งที่คุณต้องทำก็แค่เปลี่ยนชื่อ 3.jpg ==> 1b.jpg นี่ทำให้เขาอยู่ระหว่าง 1 ถึง 2!
ตอนนี้เพียงเปลี่ยนชื่อไฟล์ทั้งหมดในโฟลเดอร์แล้ว voila! อย่างไรก็ตาม ดูเหมือนว่าจะใช้งานไม่ได้...
รหัสของฉันคือ:
// 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 สวรรค์' ไม่ได้เปลี่ยนชื่อ 1.jpg ก็หายไป...)
ความช่วยเหลือทั้งหมดได้รับการชื่นชมอย่างมาก!