Это моя загрузка 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, а не файл переименованный в папке тестов.
Как получить переименованное имя файла пути ???
Я очень ценю вашу помощь в этом вопросе.
заранее спасибо
использование базовое () чтобы получить имя файла из пути.
$filename = basename('/path/to/file.ext');
Это даст вам: file.ext
Чтобы переименовать путь к файлу, вы можете использовать это:
if ( !file_exists( $path ) ) {
mkdir( $path, 0777, true );
}
Это позволит убедиться, что путь существует, и если он не будет создан, он будет создан. Теперь мы можем переименование ()
rename( __FILE__ "/new/path/".$file_name );
Это будет перемещать его между каталогами, если это необходимо.