如何将画布图像上传到Laravel上的存储

时间:2019-04-23 22:42:53

标签: ajax laravel canvas

我有一个小的laravel项目,需要从画布上传文件到存储/上传/ imgs。这是我的画布

<body>
    <canvas id="canvas"></canvas>
</body>

如下所示,我可能需要给客户端使用ajax

var canvas = document.getElementById('image');
    var dataURL = canvas.toDataURL();

$.ajax({
    type: "POST",
    url: "/route-here",
    data: { 
        imgBase64: dataURL
    }
}).done(function(o) {
    console.log('saved'); 
});

但是我不确定在服务器(Laravel)方面进行编码。任何建议或指导将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

我不使用Canvas,但是做了一些文件上传...您可以使用标准的php方法在Laravel中移动文件...而且,虽然您可以肯定使用AJAX,但也可以通过表单来完成此操作。 ..

如何在控制器中处理上传的示例:

if ($request->file('image')) {

    $asset = $request->file('image')->getClientOriginalName();

        $request->file('image')->move(
               base_path() . '/storage/app/uploads/imgs/', $asset
        );

}

我通常也会在调用-> move方法之前检查路径(好像您的路径不存在-它将失败),重复文件名等。

从长远来看,更好的方法是学习Laravel Storage类的工作方式-代码更少-但需要正确配置“磁盘”以及将类包括在控制器中。

上面的希望可以帮助您指出正确的方向...