【问题标题】:How to upload canvas image to storage on Laravel如何将画布图像上传到 Laravel 上的存储
【发布时间】:2019-04-24 12:14:47
【问题描述】:

我有一个小型 laravel 项目,需要将文件从画布上传到 storage/uploads/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)端进行编码。任何建议或指导将不胜感激,谢谢。

【问题讨论】:

  • id='image'var canvas = document.getElementById('canvas');。换一个。

标签: ajax laravel canvas


【解决方案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 类的工作原理——代码更少——但需要正确配置“磁盘”以及在控制器中包含该类等。

希望以上内容能帮助您指明正确的方向...

【讨论】:

  • 谢谢,我已经解决了。这是我的代码 $newname = time().'.'.explode('/',explode(':',substr($base64,0,strpos($base64,';')))[1])[ 1]; Image::make($request->img)->save(public_path('storage/uploads/treatment/').$newname);
  • @joenpcnpcsolution 你能解释一下它'$base64'的来源吗?
猜你喜欢
  • 2020-12-17
  • 2014-06-09
  • 1970-01-01
  • 2013-02-14
  • 2022-11-26
  • 2012-06-10
  • 1970-01-01
  • 2017-03-27
  • 2014-03-10
相关资源
最近更新 更多