PHP 重命名文件并附加扩展名


php rename file and append extension

我正在尝试在上传后重命名图像文件,这是我的代码。

if (isset($_POST['image'])){

$file_name = $_POST['image'];
$extention = pathinfo("$file_name ",PATHINFO_EXTENSION);
rename("files/" . $file_name,"files/" . uniqid() . $extention);
echo "done";
}

有效,但文件名显示如下

5498e85c85b89jpeg 
5498e85c85b89jpeg  

如何在扩展名前添加点? 使文件名显示如下

5498e85c85b89.jpeg
5498e85c85b89.jpeg

我应该另一个重命名操作来解决这个问题吗? 还是有解决方法?

rename调用中连接一个.

rename("files/" . $file_name,"files/" . uniqid() . "." . $extention);

顺便说一句,您需要清理输入。如果它包含任何../组件,它将能够重命名 files/ 子目录之外的文件。

请使用这个

rename("files/" . $file_name,"files/" . uniqid() .".".$extention);