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