Elly08 Ответов: 2

Изображение невозможно переместить во временные файлы с помощью move_uploaded_file (PHP)


Я пытаюсь сохранить изображения в базе данных, которая сначала перемещает изображение во временный файл, а затем только сохраняет имя изображения в базе данных mysql. Я могу загрузить изображение, но некоторые из изображений, размер которых &ГТ; 2Мб невозможно перейти к временным файлам. Я тоже не уверен, что это из-за предоставить разрешения к файлам с тех пор, как я увидел, что какой-то форум в интернете поднимает этот вопрос, когда у других возникают проблемы с перемещением файлов в файл tmp.

Что я уже пробовал:

Вот кодирование, которое я сейчас использую.

$imgFile = $_FILES['user_image']['name'];
$tmp_dir = $_FILES['user_image']['tmp_name'];
$imgSize = $_FILES['user_image']['size'];

$upload_dir = 'user_images/'; // upload directory

$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension

// valid image extensions
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions

// rename uploading image
$userpic = rand(1000,1000000).".".$imgExt;

// allow valid image file formats
if(in_array($imgExt, $valid_extensions)){           
    // Check file size '5MB'
    if($imgSize < 5000000)              {
        move_uploaded_file($tmp_dir,$upload_dir.$userpic);
    }
    else{
        $errMSG = "Sorry, your file is too large.";
    }
}
else{
    $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";        
}

2 Ответов

Рейтинг:
2

Jochen Arndt

Вы должны проверить наличие ошибок загрузки файла, прежде чем пытаться переместить его. Видеть PHP: объясненные сообщения об ошибках-руководство пользователя[^].


Рейтинг:
10

Peter Leow

Скорее всего, он ограничен этими настройками по умолчанию в файле php. ini:
upload_max_filesize[^]
и
установка post_max_size[^]


Elly08

Я выяснил это, и вы правы. Речь идет о настройке в php. ini