переименовать все файлы в папке

Я пытался переименовать все файлы (изображения) в папке на моем сайте, но это не работает. файлы не переименованы.

у меня есть поле для ввода имени, я хочу использовать это имя, добавить уникальное имя и переименовать все файлы.
вот код, который я использую:

<?php
if(isset($_POST['submit2'])){
$name = $_POST['name'];
$directory = glob("../basic_images/*.*");
{
if ($file != "." && $file != "..") {

$newName = uniqid().$name;

rename($directory.$file, $directory.$newName);
}}}
?>

кроме того, мне действительно нужно _Post переменная $ name?

Постскриптум Я хочу переименовать все файлы, а затем скопировать их в другую папку.

-2

Решение

Вам не нужно отправлять name

glob возвращает вам все файлы в папке с путем // пример /basic_images/test.jpg

тогда вы просто делаете foreach перебирать файлы и обновлять их имя.

$path = "../basic_images/";
$directory = glob($path,"*.*");
foreach($directory as $file){
$ext = pathinfo($file, PATHINFO_EXTENSION);
$newName = uniqid().$ext;
rename($file, $path.$newName);
}

узнать больше о glob : http://php.net/manual/en/function.glob.php

0

Другие решения

Итак, я наконец-то решил проблему. Теперь вместо того, чтобы переименовывать исходные файлы и затем копировать их в другую папку, я просто создаю новые копии файлов с новыми именами.

Это окончательный код, который работает для меня:

if(isset($_POST['submit'])){

$path = "../posts_images/";
$files = glob("../basic_images/*.*");
foreach($files as $file){
$ext = pathinfo($file, PATHINFO_EXTENSION);
$name = $_POST['new_name'];
$pic = uniqid().$name;
$newName = $pic.'.'.$ext;
copy($file, $path.$newName);

}}

важно использовать $pic.'.'.$ext потому что без него новые файлы не имеют расширения.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector