LARAVEL

Laravel filepond

26.07.2021 2 dəq oxuma

1.html faylında 

<head>
   <link href="https://unpkg.com/filepond@^4/dist/filepond.css" rel="stylesheet" />
</head>

<body>
   <div class='col-12'>
        <div class='form-group'>
            <input type='file' name='images[]' class='product-image-upload-input' id='productImageUploadInput'
               multiple
               data-allow-reorder="true"
               data-max-file-size="3MB"
               data-max-files="5"
            />
            <small class='form-text text-muted'></small>
            <small class='form-text text-danger' data-error-reporter='sass'></small>
        </div>
    </div>
</body>

<script src="https://unpkg.com/filepond@^4/dist/filepond.js"></script>

<script>
    const productImageUploadInput = document.querySelector('input[id="productImageUploadInput"]');
    const pond  = FilePond.create(productImageUploadInput);

    FilePond.setOptions({
        server : {
            process: {
                url: '{!! route('admin.product.images.upload') !!}',
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            },
            revert: {
                url: '{!! route('admin.product.images.delete') !!}',
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            },
        }
    });
</script>

2. web.php faylında

Route::post('product-images-upload', [ mehsulController::class,'productImagesUpload' ] )->name('admin.product.images.upload');
Route::delete('product-images-delete', [ mehsulController::class,'productImagesDelete' ] )->name('admin.product.images.delete');

3.mehsulController.php faylında

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use Intervention\Image\Facades\Image;

class mehsulController extends Controller
{
    public function productImagesUpload(Request $request)
    {
        if ($request->hasFile('images'))
        {
            $files = $request->file('images');

            foreach ($files as $file)
            {
                if (filesize($file)/(1024*1024) <= 3)
                {
                    $filename  = pathinfo( $file->getClientOriginalName(), PATHINFO_FILENAME );
                    $extention = $file->getClientOriginalExtension();
                    $new_name  = $filename . '-' . time() . '.' . $extention;
                    $destinationPath = public_path('/product-images');
                    $img = Image::make($file->path());
                    $img->resize(518, 484)->save($destinationPath.'/'.$new_name);
                }
            }
        }
    }

    public function productImagesDelete(Request $request)
    {
        //
    }
}

 

Digər dildə: EN