使用PHP重命名上传的文件但保留扩展名

bsa*_*mek 14 php file-upload

我正在使用PHP将图像从表单上传到服务器,并希望重命名图像lastname_firstname.[原始扩展名].我目前有:

move_uploaded_file($_FILES["picture"]["tmp_name"], "peopleimages/" . "$_POST[lastname]" . '_' . "$_POST[firstname]")
Run Code Online (Sandbox Code Playgroud)

当然,它没有扩展名重命名文件lastname_firstname.如何重命名文件但保留扩展名?

谢谢!

Pas*_*TIN 33

你需要先找出原来的扩展名是什么;-)

要做到这一点,该pathinfo功能可以创造奇迹;-)


引用手册中给出的示例:

$path_parts = pathinfo('/www/htdocs/index.html');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
Run Code Online (Sandbox Code Playgroud)

会给你 :

/www/htdocs
index.html
html
index
Run Code Online (Sandbox Code Playgroud)


作为旁注,不要忘记安全性: