Вход Регистрация
Файл: app/Http/Controllers/User/PictureController.php
Строк: 65
<?php

declare(strict_types=1);

namespace 
AppHttpControllersUser;

use 
AppClassesValidator;
use 
AppHttpControllersController;
use 
AppModelsUser;
use 
IlluminateHttpRedirectResponse;
use 
IlluminateHttpRequest;
use 
IlluminateViewView;
use 
InterventionImageImageManager;

class 
PictureController extends Controller
{
    public ?
User $user;

    
/**
     * Конструктор
     */
    
public function __construct()
    {
        
$this->middleware('check.user');

        
$this->middleware(function ($request$next) {
            
$this->user getUser();

            return 
$next($request);
        });
    }

    
/**
     * Главная страница
     *
     * @return View|RedirectResponse
     */
    
public function index(
        
Request $request,
        
Validator $validator,
        
ImageManager $imageManager,
    ) {
        if (
$request->isMethod('post')) {
            
$photo $request->file('photo');

            
$validator->equal($request->input('_token'), csrf_token(), ['photo' => __('validator.token')]);

            
$rules = [
                
'maxsize'    => setting('filesize'),
                
'extensions' => explode(','setting('image_extensions')),
                
'minweight'  => 100,
            ];
            
$validator->file($photo$rules, ['photo' => __('validator.image_upload_failed')]);

            if (
$validator->isValid()) {
                
// -------- Удаляем старое фото и аватар ----------//
                
if ($this->user->picture) {
                    
deleteFile(public_path($this->user->picture));
                    
deleteFile(public_path($this->user->avatar));

                    
$this->user->picture null;
                    
$this->user->avatar null;
                    
$this->user->save();
                }

                
// -------- Загружаем фото ----------//
                
$file $this->user->uploadFile($photofalse);

                
// -------- Генерируем аватар -------//
                
$avatar $this->user->uploadAvatarPath '/' uniqueName('png');

                
$image $imageManager->read($photo);
                
$image->coverDown(6464);
                
$image->toPng();
                
$image->save(public_path($avatar));

                
$this->user->picture $file['path'];
                
$this->user->avatar $avatar;
                
$this->user->save();

                
setFlash('success'__('users.photo_success_uploaded'));

                return 
redirect('profile');
            }

            
setInput($request->all());
            
setFlash('danger'$validator->getErrors());
        }

        
$user $this->user;

        return 
view('users/picture'compact('user'));
    }

    
/**
     * Удаление фотографии
     */
    
public function delete(Request $requestValidator $validator): RedirectResponse
    
{
        
$validator->equal($request->input('_token'), csrf_token(), ['photo' => __('validator.token')]);

        if (! 
$this->user->picture) {
            
$validator->addError(__('users.photo_not_exist'));
        }

        if (
$validator->isValid()) {
            
deleteFile(public_path($this->user->picture));
            
deleteFile(public_path($this->user->avatar));

            
$this->user->picture null;
            
$this->user->avatar null;
            
$this->user->save();

            
setFlash('success'__('users.photo_success_deleted'));
        } else {
            
setFlash('danger'$validator->getErrors());
        }

        return 
redirect('profile');
    }
}
Онлайн: 0
Реклама