Я сделал свое кодирование, вставив изображения во временный файл. Я могу загрузить изображения размером менее 5 МБ, но некоторые изображения не могут быть вставлены, и мне интересно, почему. Может кто-нибудь сказать мне, что я сделал неправильно в моей кодировке ниже?
$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.";
}
РЕДАКТИРОВАТЬ
Я обнаружил, что изображения, размер которых > 2MB
невозможно переместить во временный файл, но он проходит строку if($imgSize < 5000000)
, Как это исправить?
Я узнал, что это вызвано настройкой в php.ini
где upload_max_filesize
установлен в 2M
, Я надеюсь, что это будет полезно для других, которые сталкиваются с той же проблемой, что и моя. Перейти к вашей php.ini
и увидеть Загрузка файлов раздел и найти строку upload_max_filesize = 2M
, Изменить 2M
любого размера, соответствующего вашим требованиям и перезапустите все сервисы 🙂
Других решений пока нет …