如何在Laravel中保存裁剪的图像?

时间:2018-11-22 13:29:26

标签: javascript php laravel

我想将图像保存到我的数据库中。我已经花了数小时进行搜索和尝试,但是似乎没有用。我已经了解到laravel不使用patch方法发送裁剪图像,而我需要ajax。

HTML:

<form  action="{{route('program.updateImage', ['id'=> $program->id])}}" method="post" enctype="multipart/form-data">
    {{ method_field('PATCH') }}
    {{ csrf_field() }}
    <div id="crop" class="croppie-container"></div>
    <a class="upload-file">
        <span>Upload</span>
        <input type="file" name="image" id="upload"><br>
    </a>
    <input type="submit" name="submit" value="Save image">
</form>

JS:

$(function() {
        var basic = $('#crop').croppie({
            viewport: {
                width: 400,
                height: 200
            },
            boundary: { width: 400, height: 300 },
        });
        basic.croppie('bind', {
                url: '{{asset('images/'.$program->image)}}'
        });
    });

    function readFile(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#crop').croppie('bind', {
                    url: e.target.result
                });
            }

            reader.readAsDataURL(input.files[0]);
        }
    }

    $('.upload-file input').on('change',function(){
        readFile(this);
    });

PHP:

public function updateImages(Request $request, $id){
    //$this->validate($request, array('image' => 'mimes:jpeg,jpg,png'));
    $program = Program::find($id);

    //list($type, $data) = explode(';', $data);
    //list(, $data) = explode(',', $data);

    //$data = base64_decode($data);
    echo $request;

}

我开始学习laravel,并尝试建立一个网站。我正在尝试实施“上传裁剪图像”。我正在使用作物https://foliotek.github.io/Croppie/,并设法在浏览器中成功显示。

0 个答案:

没有答案