Файл: pages/user/avatar.php
Строк: 51
<?
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');