/* create new name file */
$filename = uniqid() . "-" . time(); // 5dab1961e93a7-1571494241
$extension = pathinfo( $_FILES["file"]["tmp_name"], PATHINFO_EXTENSION ); // jpg
$basename = $filename . "." . $extension; // 5dab1961e93a7_1571494241.jpg
$source = $_FILES["file"]["tmp_name"];
$destination = "../uploads/{$basename}";
/* move the file */
move_uploaded_file( $source, $destination );
Генерируется уникальное имя и ставится точка в конце, после точки должно быть разрешение файла. Почему этого нет?!