Как получить имя файла из полного пути с переполнением стека

Это моя загрузка php:

  if (trim($_FILES['path_filename']['name']))
{
if (File::upload($_FILES['path_filename'], dirname(realpath(__FILE__)) . '/../tests'))
{
$test->setPathFilename('../tests/' . $_FILES['path_filename']['name']);
}
}
}
else
{
if ($aux)
{
$aux = str_replace("\\", "/", $aux);
$aux = preg_replace("/[\/]+/", "/", $aux);
$test->setPathFilename($aux);
}
}
$_POST["upload_file"] = $test->getPathFilename();

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

Пример: когда я загружаю файл, например: ABC.jpg, он загружается в папка тестов а также имя файла пути есть (( ../tests/ABC.jpg )) и он будет вставлен в таблицу SQL.

Проблема здесь:

Я изменил глобальную функцию для автоматического переименования файлов, используя следующий код:

До этого было:

        $destinationName = $file['name'];

Я изменил это на:

$ext = pathinfo($file["name"], PATHINFO_EXTENSION);
$destinationName = sha1_file($file["tmp_name"]).time().".".$ext;

Теперь, после загрузки файла в папку тестов, он будет автоматически переименован, но имя файла пути все равно, это ABC.jpg, а не файл переименованный в папке тестов.

Как получить переименованное имя файла пути ???

Я очень ценю вашу помощь в этом вопросе.

заранее спасибо

1

Решение

использование базовое () чтобы получить имя файла из пути.

$filename = basename('/path/to/file.ext');

Это даст вам: file.ext

0

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

Чтобы переименовать путь к файлу, вы можете использовать это:

if ( !file_exists( $path ) ) {
mkdir( $path, 0777, true );
}

Это позволит убедиться, что путь существует, и если он не будет создан, он будет создан. Теперь мы можем переименование ()

rename( __FILE__  "/new/path/".$file_name );

Это будет перемещать его между каталогами, если это необходимо.

0

По вопросам рекламы [email protected]