Vue / Laravel: Как проверить файлы, загруженные с веб-интерфейса? - PullRequest
0 голосов
/ 03 мая 2020

В моем приложении Vue есть загрузчик изображений, который принимает несколько файлов. Я хочу убедиться, что они являются изображениями и имеют определенный размер, и если нет, то, очевидно, не загружайте файлы, и внешний интерфейс отображает ошибку. Прямо сейчас маршрут, по которому он попадает в контроллер, выглядит примерно так:

   public function uploadAssets(UploadAssetsFormRequest $request)
    {
        if ($request->hasFile('file')) {
            $files = $request->file('file');
            $stack = [];
            foreach ($files as $file) {
                $fileName = Storage::put('/check/', file_get_contents($file->getRealPath()), ['visibility' => 'public']);
                array_push($stack, $fileName);
            }
            return response()->json($stack);
        }
    }

Мой запрос формы находится ниже и имеет проверку, но я не знаю, как применить это в контроллере.

UploadAssetsFormRequest

<?php

namespace App\Http\Requests\Admin;

use Illuminate\Foundation\Http\FormRequest;

class UploadAssetsFormRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'files.*' => 'required|image|max:1000',
        ];
    }

    public function messages()
    {
        return [
            'files.*.max'   => 'The image is too large',
            'files.*.image' => 'Only image files are allowed.',
        ];
    }
}

Ответы [ 3 ]

0 голосов
/ 03 мая 2020

Вы можете использовать laravel подтверждение изображения

$this->validate ($input, [
    'files.*.image' => 'image|max:200',
]):

Примечание: макс (размер) в килобайтах

Вы также можете использовать правило измерения

$this->validate ($input, [
    'files.*.image' => 'dimensions:min_width=100,min_height=200'
]):

Laravel Проверка изображения

Laravel Проверка размеров изображения

0 голосов
/ 03 мая 2020

Вы можете установить следующее правило в вашей проверке -

 'file' => 'required|max:100|mimes:jpg,png,bmp' // 100kb, mimes must have image extensions
0 голосов
/ 03 мая 2020

Вам необходимо проверить расширение файла:

$extension = $file->extension();
$allowed_file_types = ['jpg','png','gif'];
if (in_array($extension, $allowed_file_types)){
//do upload
}else{
Continue;
}

для проверки размера файла эта тема

...