View file pages/user/avatar.php

File size: 2.93Kb
<?
if (!$user) {
	Redirection('/');
}
$PageConfig = [
	'title' => 'Настройка аватара',
];

PageConfig($PageConfig);

function can_upload($file){
	// если имя пустое, значит файл не выбран
	if($file['name'] == ''){
		return 'Вы не выбрали файл.';
	}
	/* если размер файла 0, значит его не пропустили настройки 
	сервера из-за того, что он слишком большой */
	if($file['size'] == 0) {
		return 'Файл слишком большой.';
	}
	// разбиваем имя файла по точке и получаем массив
	$getMime = explode('.', $file['name']);
	// нас интересует последний элемент массива - расширение
	$mime = strtolower(end($getMime));
	// объявим массив допустимых расширений
	$types = array('jpg', 'png', 'jpeg');

	// если расширение не входит в список допустимых - return
	if(!in_array($mime, $types)) {
		return 'Недопустимый тип файла.';
	}
	return true;
}

function make_upload($file){
	global $user;
	// формируем уникальное имя картинки: случайное число и name
	$name = md5(mt_rand(1, 999999) . time());	
	if ($user['avatar'] != '_default_1.jpg' AND $user['avatar'] != '_default_2.jpg' AND $user['avatar'] != '_default_3.jpg'){
		unlink(H.'files/avatars/big/' . $user['avatar']);
		unlink(H.'files/avatars/mid/' . $user['avatar']);
		unlink(H.'files/avatars/min/' . $user['avatar']);
	}
	$imgs = new acResizeImage($file['tmp_name']);
	$path = $imgs->
	cropSquare(25, 50, 1500)->
	resize(900, 300)->
	save(H.'files/avatars/big/', $name , 'jpg', true, 75);	
	
	$imgs = new acResizeImage($file['tmp_name']);
	$path = $imgs->
	cropSquare(25, 50, 1500)->
	resize(500, 300)->
	save(H.'files/avatars/mid/', $name , 'jpg', true, 75);	
	
	$imgs = new acResizeImage($file['tmp_name']);
	$path = $imgs->
	cropSquare(25, 50, 1500)->
	resize(48, 300)->
	save(H.'files/avatars/min/', $name , 'jpg', true, 75);		
	
	$name = $name .'.jpg';
	return $name;
}
// если была произведена отправка формы
if(isset($_FILES['file'])) {
  // проверяем, можно ли загружать изображение
  $check = can_upload($_FILES['file']);
  
  if($check === true){
	// загружаем изображение на сервер
	$r = make_upload($_FILES['file']);
	$sql->query("UPDATE `users` SET `avatar` = ? WHERE `id` = ?", [$r, $user['id']]);
	CacheDelete::user($user['id']);
	Redirection('?','Успешно');
  }
  else{
	// выводим сообщение об ошибке
	echo "<strong>$check</strong>";  
  }
}
	
if (isset($err)) {
	err($err);
}

$t->assign('PageConfig', $PageConfig);
echo $t->fetch('user.avatar');