【问题标题】:Custom File field to capture image from webcam in Laravel nova自定义文件字段以从 Laravel nova 中的网络摄像头捕获图像
【发布时间】:2022-01-27 07:17:46
【问题描述】:

我是 Laravel Nova 的新手,我想从计算机上传头像或从网络摄像头捕捉。至于现在,我创建了一个条件依赖选择字段来使用this package 隐藏和显示元素。我遇到了webcamjs,我想知道我将如何实现这个自定义操作。

我有两个选项“从网络摄像头捕获”和“从计算机上传”。我现在只有这个“从计算机上传”,它工作正常。我想要的是从网络摄像头捕获图像并加载头像字段。

public function fields(Request $request)
{
        return [
            ID::make(__('ID'), 'id')->sortable(),

            Text::make('Full Name')->rules('required'),

            Select::make('Upload Avatar', 'upload_avatar_method')->options([
                0 => 'Capture from Webcamera',
                1 => 'Upload from Computer',
            ])->displayUsingLabels()->rules('required'),


            NovaDependencyContainer::make([
                Avatar::make('Avatar','avatar')
                    ->disk('public')
                    ->path('employees/'. $request->user()->id)
                    ->storeAs(function (Request $request) {
                        return 'avatar.'.$request->file('avatar')->getClientOriginalExtension();
                    })
                    ->rules('required')
                    ->thumbnail(function ($value, $disk) {
                        return $value
                                    ? Storage::disk($disk)->url($value)
                                    : null;
                    })->hideFromIndex(),
            ])->dependsOn('upload_avatar_method', 1),

        ];
}

【问题讨论】:

  • 您是否尝试过这样做?这一切都将是客户端的 JS 代码。
  • 不幸的是,我不太擅长通过 client-seide JS @miken32 处理所有自定义。我不太了解如何使用 nova 自定义代码,任何示例代码或文章都会非常有利于参考。

标签: laravel vue.js laravel-nova


【解决方案1】:

有几种方法可以解决这个问题。

重要提示:我不建议使用WebcamJS 包,因为它是一个无人维护的包,还有其他可行的替代方案。您可以分叉软件包并修复任何错误,但这会更有效。


选项 #1(也许是您的最佳选择)

我的建议是创建一个扩展“头像”或“文件”的自定义字段,并添加“从网络摄像头捕获”选项。您可以快速轻松地使用我在下面链接的这些软件包之一(比 WebcamJS 更新)。


选项 #2(轻松分享!)

另一种可能的、甚至更简单的方法是创建一个独立的自定义“网络摄像头”字段。您仍然需要 Nova Field Dependency Container 包,但您的自定义字段可以以独立方式与社区共享。


How to create a custom field in laravel nova


WebcamJS 的替代包:

选择对您最有用的软件包! 希望对我有所帮助!

【讨论】:

  • 感谢您的广泛回复。我尝试与Uppy 耦合,但我不知道添加独立的自定义代码。我创建了您推荐的自定义字段。我有很多东西要学习如何处理自定义字段。
  • 自定义字段可能是 Laravel Nova 的强项。我看了看 Uppy 包,我必须说它做得很好。就我个人而言,我尝试创建一个自定义字段来使用网络摄像头,这作为第一项任务并不是很容易,但是一旦你这样做了,你就会明白它们有多舒服。只需几个步骤,您创建的包也可以与社区共享。
猜你喜欢
  • 2013-02-09
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多