Встала задача загрузки файлов на сервер. До этого момента я вообще веб-программированием не занимался, поэтому взял готовый
пример с сайта. Немного поправив его под свои задачи. Ниже приведён пример кода с сайта, у меня почти такой же
?
$max_image_width = 1280;
$max_image_height = 1024;
$max_image_size = 4*1024*1024;
$valid_types = array("gif","jpg", "png", "jpeg");
if (isset($_FILES["userfile"])) {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
$filename = $_FILES['userfile']['tmp_name'];
$ext = substr($_FILES['userfile']['name'],
1 + strrpos($_FILES['userfile']['name'], "."));
if (filesize($filename) > $max_image_size) {
echo 'Error: File size > 64K.';
} elseif (!in_array($ext, $valid_types)) {
echo 'Error: Invalid file type.';
} else {
$size = GetImageSize($filename);
if (($size) && ($size[0] < $max_image_width)
&& ($size[1] < $max_image_height)) {
if (@move_uploaded_file($filename, "/www/htdocs/upload/")) {
echo 'File successful uploaded.';
} else {
echo 'Error: moving fie failed.';
}
} else {
echo 'Error: invalid image properties.';
}
}
} else {
echo "Error: empty file.";
}
} else {
...
}
?>
Код отлично работает. Но проблемы возникают при попытки загрузить этим кодом картинки с телефона, или картинки снятые телефоном (т.е. если грузить её с компьютера). Проверенно на нескольких устройствах.
Вываливается всё в первой проверке, и сервер даёт ошибку:
Error: empty file.
Пример такого вот изображения, не проходящего проверку
вот
Что я делаю не так, и как решить эту проблему?