Отправить изображение с Croppie - PullRequest
0 голосов
/ 08 июля 2020

Я следую этому руководству ниже, и все работает, но только так.

http://www.phpzone.in/laravel-crop-and-upload-an-image-with-jquery-croppie-plugin-using-ajax/

В моем контроллере магазина я загружаю изображение, где используется как баннер, одно вложение (zip) и несколько текстовых полей ... Теперь я пытаюсь загрузить "эскиз", но с помощью cropp ie вырезать изображение!

Как я это делаю контроллер:

    $image_file = $request->image;
    list($type, $image_file) = explode(';', $image_file);
    list(, $image_file)      = explode(',', $image_file);
    $image_file = base64_decode($image_file);
    $image_name= $lastpost->slug.'.png';
    $path = public_path('uploads/posts/banner/thumb-'.$image_name);
    file_put_contents($path, $image_file);
    return response()->json(['status'=>true]);

Работайте с этим:

 public function store(Request $request)
 {
    ...
    $featured = $request->featured;
    $featuerd_new = $featured->getClientoriginalName();
    $featuredPath = '/uploads/posts/banner/' . $request->title . '/';
    $featured->move(public_path($featuredPath), $featuerd_new);
    $thumbnailpic = 'thumb' . '-' . $featuerd_new;
    
    ...
    
    $post = Post::create([ ... ]);

    ...

    return redirect()->back();
}

вот мой скрипт

<script type="text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    var resize = $('#upload-demo').croppie({
        enableExif: true,
        enableOrientation: true,
        viewport: { // Default { width: 100, height: 100, type: 'square' }
            width: 400,
            height: 300,
            type: 'square' //square
        },
        boundary: {
            width: 400,
            height: 300
        }
    });
    $('#image_file').on('change', function () {
        var reader = new FileReader();
        reader.onload = function (e) {
            resize.croppie('bind',{
                url: e.target.result
            }).then(function(){
                console.log('jQuery bind complete');
            });
        }
        reader.readAsDataURL(this.files[0]);
    });
    $('.upload-image').on('click', function (ev) {
        resize.croppie('result', {
            type: 'canvas',
            size: 'viewport'
        }).then(function (img) {
            html = '<img src="' + img + '" />';
            $("#preview-crop-image").html(html);
            $("#upload-success").html("Images cropped and uploaded successfully.");
            $("#upload-success").show();

            $.ajax({
              url: "{{route('croppie.upload-image')}}",
                type: "POST",
               //data: {"image":img},
             success: function (data) {

               }
            });
        });
    });
</script>

Я уже много чего пробую на контроллере магазина, но файл всегда ломался.

Заранее спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...