Advertisement
zero50x

PHP загрузка файла на сервер обработчик

Sep 26th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.62 KB | None | 0 0
  1. //echo '<pre>'; var_dump($_SERVER); echo '</pre>';
  2.  
  3. echo '<pre>$_FILES '; var_dump($_FILES); echo '</pre>';
  4.  
  5. //echo __DIR__.'/uploads/';
  6.  
  7. // Ошибок нет
  8. $error = '';
  9.  
  10. // Куда грузим
  11. $uploaddir = __DIR__.'/uploads/';
  12.  
  13. // Разрешённые типы при валидации
  14. $permitted_mime = ['image/png', 'image/jpeg', 'image/gif'];
  15. $permitted_exif = [1,2,3]; // GIF, JPG, PNG
  16.  
  17. // Сам файл
  18. $file = $uploaddir . basename($_FILES['uploadfile']['name']);
  19.  
  20. // Валидация двумя способами
  21. $size = getimagesize($file);
  22. $exif = exif_imagetype($file);
  23.  
  24. // Проверка типа
  25. if(in_array($size['mime'], $permitted_mime) && in_array($exif, $permitted_exif)){
  26.     $error = 'Изображение на соответствует необходимому типу (gif, jpg, png)';
  27. }
  28.  
  29. // Проверка на квадрадность
  30. elseif($size[0] !== $size[1]){
  31.     $error = 'Ширина не равна высоте, изображение должно быть квадратное';
  32. }
  33.  
  34. // Максимальный размер (500px)
  35. elseif($size[0] > 400){
  36.     $error = 'Иконка кресла зала не может быть больше 400px по размеру';
  37. }
  38.  
  39. // Удачно ли переместили из временного каталога
  40. elseif (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
  41.     $error = 'Файл не перемещён к месту назначения';
  42. }
  43.  
  44. if(!empty($error)){
  45.     unlink($_FILES['uploadfile']['tmp_name']);
  46.     echo json_encode(['error' => $error]);
  47. } else {
  48.     echo 'ok';
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement