将Summernote图片存储在数据库中

时间:2018-06-22 16:20:34

标签: javascript php laravel summernote

到目前为止,我已经完成以下工作:

Ajax请求:

        $('#description').summernote({
            callbacks: {
                onImageUpload: function(files) {
                    for(var i=0; i < files.length; i++) {
                        $.upload('image', files[i]);
                    } 
                }
            }
        });

        $.upload = function (file) {
            let out = new FormData();
            out.append('file', file, file.name);

            $.ajax({
                method: 'POST',
                url: '/summer-uploads',
                //check laravel document: https://laravel.com/docs/5.6/csrf#csrf-x-csrf-token
                headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                contentType: false,
                cache: false,
                processData: false,
                dataType: 'JSON',
                data: out,
                success: function (r) {
                    $('#description').summernote('insertImage', r.url);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    console.error(textStatus + " " + errorThrown);
                }
            });
        };

控制器:

public function summerUploads(Request $request)
{
    if ($request->ajax()) {
        $file = $request->input('image');

        $store = $file->store('summer-uploads');

        return url() . '/summer-uploads/' . $store;
    }

    return App::abort(404);
}

路线:

Route::any('summer-uploads', 'AdminController@summerUploads');

如果我尝试上传图像,则出现错误:控制台中出现500(内部服务器错误)。如果我尝试使用POSTMAN,则会收到“由于不活动而导致页面过期。”我的meta中的CSRF令牌存在,可能是个问题吗?

更新1。

我在chrome devtools中发现了错误:

{message: "Call to a member function store() on null",…}
exception
:
"Symfony\Component\Debug\Exception\FatalThrowableError"
file
:
"/Users/username/Sites/PROJECTNAME/app/Http/Controllers/AdminController.php"
line
:
174
message
:
"Call to a member function store() on null"

0 个答案:

没有答案