jpegcam переопределить файл записи с фотографией

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
pprisn
Сообщения: 3
Зарегистрирован: 2017.04.23, 09:44

jpegcam переопределить файл записи с фотографией

Сообщение pprisn »

Имеется внешнее расширение

yii-jpegcam для работы с камерой

Демо пример работает, но есть проблема с переопределением имени для сохранения фотографии.

Вопрос как возможно переинициализировать actions()
чтобы изменить первоначально установленное значение
'filepath'=> Yii::app()->basePath."/../uploads/user.jpg", // This could be whatever

на другое необходимое ????
Пробовал применять переменную глобальную переменную
public $filepath=' x.jpg';
Перед выполнением записи фото устанавливал новое значение
$this->filepath=' User1.jpg';
Данный способ не работает ?????




class UserController extends Controller
{
public function actionIndex()
{
$this->render('index');
}

public function actionNewPhoto()
{
$this->render('newPhoto');
}

public function actionSaveJpg()
{
$this->render('saveJpg');
}

public function actions()
{
return array(
'jpegcam.'=> array(
'class'=>'application.extensions.jpegcam.EJpegcam',
'saveJpg'=>array(
'filepath'=> Yii::app()->basePath."/../uploads/user.jpg", // This could be whatever
)
)
);
}

-----------------------------
newPhoto.php

<?php
$this->breadcrumbs=array(
'User'=>array('/user'),
'New Photo',
);?>
<h1>Новая фотография</h1>

<?php $onBeforeSnap = "document.getElementById('upload_results').innerHTML = '<h1>Uploading...</h1>';";
$completionHandler = <<<BLOCK
if (msg == 'OK') {
document.getElementById('upload_results').innerHTML = '<h1>OK! ...запись фотографии, ожидайте 3 снкунды</h1>';

// reset camera for another shot
webcam.reset();
setTimeout(function(){window.location = "index.php?r=user/index";},3000);
}
else alert("PHP Error: " + msg);
BLOCK;
$this->widget('application.extensions.jpegcam.EJpegcam', array(
'apiUrl' => 'index.php?r=user/jpegcam.saveJpg',
'shutterSound' => false,
'stealth' => true,
'buttons' => array(
'configure' => 'Конфигурация',
'takesnapshot' => 'Сделать снимок!',
//'freeze' => 'Capture',
//'upload' => 'Upload',
//'reset' => 'Reset'
),
'onBeforeSnap' => $onBeforeSnap,
'completionHandler' => $completionHandler
)); ?>


---------------------------------------------------------------------
saveJpg.php


<?php
$this->breadcrumbs=array(
'User'=>array('/user'),
'SaveJpg',
'filetaph' => $_GET['fileimg'],
);?>
<h1><?php echo $this->id . '/' . $this->action->id; ?></h1>

<p>
You may change the content of this page by modifying
the file <tt><?php echo __FILE__; ?></tt>.
</p>
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: jpegcam переопределить файл записи с фотографией

Сообщение Nex-Otaku »

Тебе нужно установить свойство "filepath" для экшена, а не для для контроллера.

Можно это сделать кучей способов.
1. Например, в beforeAction поменять свойство.
2. Или создать свой собственный экшен, просто скопировав туда код из jpegcam/actions/saveJpg.php, благо его там совсем чуть-чуть. И дополнить код по своему вкусу, путь пропишешь какой захочешь.
3. Либо расширить этот класс.
4. Либо полностью переопределить его.

На мой взгляд, самый простой вариант - это 2.
Ответить