ejecutar este par de sentencias:
composer require kartik-v/bootstrap-fileinput "@dev"
composer require kartik-v/yii2-widget-fileinput "@dev"
la idea es poder guardar una imagen en una carpeta del sitio:
nuestro modelo tiene una campo que guarda solo el nombre del archivo: $image_name
vamos a crear un campo virtual llamado $image que hace referencia al archivo de imagen que se envia desde el formulario:
class Notifications extends \yii\db\ActiveRecord
{
var $image;
para usarlo en una vista:
use kartik\file\FileInput;
<?= $form->field($model, 'image')->widget(FileInput::classname(), [
'options' => ['accept' => 'image/*'],
'pluginOptions'=>['allowedFileExtensions'=>['jpg','gif','png'],'showUpload' => false,],
]); ?>
en el controller:
use yii\web\UploadedFile;
public function actionCreate() {
$model = new Notifications ();
if ($model->load ( Yii::$app->request->post () )) {
$image = UploadedFile::getInstance ( $model, 'image' );
if (!is_null( $image )) {
$model->full_image_url = $image->name;
$ext = end ( (explode ( ".", $image->name )) );
// generate a unique file name to prevent duplicate filenames
$model->full_image_url = Yii::$app->security->generateRandomString () . ".{$ext}";
// the path to save file, you can set an uploadPath
$uploadPath = Yii::$app->basePath . '/upload-folder/';
$path = $uploadPath. $model->image_name;
$image->saveAs ( $path );
}
if ($model->save ()) {
return $this->redirect ( [
'view',
'id' => $model->id
] );
}
}
fuente:
https://github.com/kartik-v/yii2-widget-fileinput
Suscribirse a:
Enviar comentarios (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
por consola y desde la raiz de tu proyecto php artisan --version
-
en nuestro proyecto creamos una carpeta llamada donde estaran todas nuestras clases, por ejemplo una llamada: MiApp adentro de esta irian b...
-
Integridad al nivel de la base de datos Oracle Oracle valida la integridad de la base de datos y presenta los siguientes mensajes de erro...
No hay comentarios:
Publicar un comentario