timurmelnikov/yii2-webcam-shoot

Yii2 виджет для работы с WEB камерой

Installs: 996

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 1

Forks: 5

Type:yii2-extension

0.1.3 2019-05-30 13:00 UTC

This package is auto-updated.

Last update: 2021-10-29 02:07:10 UTC


README

Идея, взята здесь

Назначение виджета

Захват изображения с WEB камеры, сохраниение снимка в формате base64, для последующей передачи через input формы на сервер. Далее, на сервере, изображение можно либо преобразовать в файл с последуюшим сохранением в файловой системе, либо непосредственно записать в базу данных в формате base64.

Системные требования

Yii2 с установленным расширением "yiisoft/yii2-bootstrap" (входит в пакет установки Yii2 по умолчанию yiisoft/yii2-app-basic и yii2-app-advanced) Виджет, тестировался в браузерах:

  • Google Chrome v. 53.0.2785.116
  • Firefox v. 48.0.2

Установка

Добавить в секцию "require" файла composer.json:

{
    "require": {
        "timurmelnikov/yii2-webcam-shoot": "dev-master"
    }
}

После редактирования файла выполнить команду composer update

Использование

В представлении, где будет использоваться yii2-webcam-shoot, подключить:

use timurmelnikov\widgets\WebcamShoot;

Вывести виджет:

echo WebcamShoot::widget([
    'targetInputID' => 'textimg',
    'targetImgID' => 'textphoto',
]);

Важную роль, играют свойства 'targetInputID' и 'targetImgID'...

На сервере, изображение в формате base64, можно обратотать, например так:

define('UPLOAD_DIR', 'img/');
$img = $_POST['textimage']; //Атрибут инпута с name = textimage
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR .  uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';