У меня был код для загрузки файла, вы можете сравнить его с вашим кодом, чтобы увидеть, где проблема.
О расширении вам необходимо убедиться, что вы загрузили в свою базу данных и загрузили в папку правильное расширение.
ПРИМЕЧАНИЕ: , прежде чем использовать код, убедитесь, что папка вызывает его (выгрузка), а внутри этой папки сделайте вызов другой папки (аватар), чтобы вы могли загрузить ее в свою папку на сервере, когда вы используйте код, который я выложил.
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="avatar">
</form>
if(isset($_FILES['avatar'])){
//If you want to see the array for file do this
//print_r($_FILES['avatar']);
// avatar array
$avatarName = $_FILES['avatar']['name'];
$avatarSize = $_FILES['avatar']['size'];
$avatarTmp = $_FILES['avatar']['tmp_name'];
$avatarType = $_FILES['avatar']['type'];
// list of allowed file typed to upload
$avatarAllowedExtension = array('jpeg', 'jpg', 'png', 'gif');
// get avatar extension
$tmp = explode('.', $avatarName);
$avatarExtension = strtolower(end($tmp));
if (!empty($avatarName) && !in_array($avatarExtension, $avatarAllowedExtension)) {
echo 'This extension is not allowed';
}
if (empty($avatarName)) {
echo 'Avatar is required';
}
if ($avatarSize > 4194304) {
echo 'Avatar cant be larger than 4mb';
}
//using rand(min,max) to insert in database different name
$avatar = rand(0, 100000000000) . '_' . $avatarName;
//to keep file insert folder if you want to show it or if you want to download it in your website
move_uploaded_file($avatarTmp, 'uploads\avatar\\' . $avatar);
//If you want to upload file use $avatar because you need different name in your database but when you show it to user you can show the original name for user file
}