/** * VISTA MIS DATOS * @return array|string|Response * @throws NotFoundHttpException * @throws \Exception */ public function run() { $user = Yii::$app->getUser(); $model = $this->findModelUsuario($user->id); $model->scenario = Usuarios::ESCENARIO_DATOS_PERFIL; if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } if ($model->load(Yii::$app->request->post())) { $post = Yii::$app->request->post('Usuarios'); $model->attributes = $post; if ($model->validate()) { if (!empty($post['clave_nueva'])) { $model->clave_nueva = $post['clave_nueva']; $model->clave = $model->clave_nueva; $model->setPassword($model->clave_nueva); $model->generateAuthKey(); } $model->save(false); // // $usuario = Usuarios::find()->where(['idusuario' => $model->idusuario])->one(); // $usuario->scenario = Usuarios::ESCENARIO_DATOS_PERFIL; // echo '<pre>';print_r($usuario->attributes);die(); // $usuario->attributes = $model->attributes; // $usuario->update(false); } if (!empty($model->imagen_nombre)) { $ruta = ImagenHelper::rutaImagenPerfil(); $imagen_actual = $ruta . $model->foto; $imagen_nueva = $model->idusuario . '_' . uniqid() . '.png'; $imagen_tmp_original = $ruta . str_replace(".", '-original.', $model->imagen_nombre); $imagen_tmp = $ruta . $model->imagen_nombre; $data = base64_decode($model->imagen_data); file_put_contents($ruta . $imagen_nueva, $data); if (file_exists($ruta)) { //actualizo foto nueva // $imgModel = Usuarios::find()->where(['idusuario' => $model->idusuario])->one(); // $imgModel->foto = $imagen_nueva; // $imgModel = Usuarios::find()->where(['idusuario' => $model->idusuario])->one(); $model->foto = $imagen_nueva; //elimino imagenes fisicas if ($model->update()) { if (file_exists($imagen_actual)) { unlink($imagen_actual); } if (file_exists($imagen_tmp)) { unlink($imagen_tmp); } if (file_exists($imagen_tmp_original)) { unlink($imagen_tmp_original); } } } } return $this->controller->redirect('mis-datos'); } return $this->controller->render('mis-datos', ['model' => $model]); }
private function setRuta() { $this->ruta = ImagenHelper::rutaImagenPerfil(); }
/** * Guarda imagen perfil * @param Usuarios $user * @throws \Exception */ private function guardarImagenPerfil(Usuarios $user) { $ruta = ImagenHelper::rutaImagenPerfil(); $tiene_foto = isset($user->foto) ? true : false; $imagen_actual = $ruta . $user->foto; $imagen_nueva = $user->idusuario . '_' . uniqid() . '.png'; $data = base64_decode($this->imagen); file_put_contents($ruta . $imagen_nueva, $data); if (file_exists($ruta)) { $user->foto = $imagen_nueva; //elimino imagenes fisicas antiguas if ($user->update()) { if ($tiene_foto & file_exists($imagen_actual)) { unlink($imagen_actual); } } } }