Определить загрузку изображений на Laravel через промежуточное ПО - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь обнаружить изображение в глобальном middleware на Laravel.

Моя цель - сделать middleware, определить, есть ли в данный момент загружаемое изображение, а затем определить его размер и манипулировать им.

Возможно ли это?

Я унаследовал проект, и мне нужно манипулировать каждым глобальным образом upload, но слишком много отдельных скриптов, чтобы изменить их все по отдельности, мне нужен какой-то способ изменить их все глобально.

Я открыт для предложений!

1 Ответ

0 голосов
/ 04 мая 2018
<?php

namespace App\Http\Middleware;

use Closure;
use Symfony\Component\HttpFoundation\Response;

class ImageInterceptorMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        foreach (array_flatten($request->files->all()) as $file) {
            $size = $file->getClientSize(); // size in bytes!

            $onemb = pow(1024, 2); // https://stackoverflow.com/a/2510446/6056864

            if ($size > $onemb) {
                abort(Response::HTTP_UNPROCESSABLE_ENTITY);
            }
        }

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