如何使用PHP从完整路径获取文件名

时间:2015-11-04 20:10:27

标签: php file-upload filenames filepath

这是我的上传php:

php_check_syntax

以上代码运行良好,我的意思是,上传到服务器正在运行,并且还获得了路径文件名,并且插入到sql表中也正常工作。

示例:当我上传文件时,例如:ABC.jpg,它将上传到测试文件夹,路径文件名也是(( ../ tests / ABC.jpg < / strong>))它将插入到sql表中。

问题在于:

我使用以下代码更改了全局函数以自动重命名文件:

之前:

  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();

我将其更改为:

        $destinationName = $file['name'];

现在,在将文件上传到测试文件夹后,它将自动重命名,但仍然是路径文件名相同,它是ABC.jpg未在test文件夹中重命名的文件。

  

如何获取重命名的路径文件名???

我真的很感谢你对这个问题的帮助。

提前致谢

2 个答案:

答案 0 :(得分:0)

使用basename()从路径中获取文件名。

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

这将为您提供:file.ext

答案 1 :(得分:0)

要重命名路径文件名,您可以使用:

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

这将确保路径存在,如果不存在则会创建。现在我们可以rename()

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

如果需要,这将在目录之间移动。