1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace v1\controllers;
- use common\data\Respuesta;
- use common\rest\AuthController;
- use yii\helpers\Json;
- use v1\models\Usuario;
- use yii\web\UploadedFile;
- class PerfilController extends AuthController {
- public function actionIndex() {
- $id = \Yii::$app->getUser()->getId();
- $usuario = Usuario::find()
- ->andWhere(["id" => $id]);
- return new Respuesta($usuario, $this->limite, $this->pagina, $this->ordenar);
- /* $usuario = $this->usuario;
- return (new Respuesta())
- ->detalle($usuario->toArray()); */
- }
- public function actionCambiarFotoPerfil() {
- if (!$this->req->isPost) {
- throw new NotFoundHttpException();
- }
- $idUsuario = trim($this->req->getBodyParam("idUsuario", ""));
- $archivo = UploadedFile::getInstanceByName('archivo');
- $id = \Yii::$app->getUser()->getId();
- $dominio = \Yii::$app->getRequest()->getHostInfo() . "/assets/";
- if ($archivo === null) {
- return (new Respuesta())
- ->mensaje("No se recibió el archivo");
- }
- $sec = \Yii::$app->getSecurity();
- $base = \Yii::getAlias("@app") . "/web/assets/";
- $ruta = "fotoPerfil/";
- if (!is_dir($base . $ruta)) {
- mkdir($base . $ruta);
- }
- $ruta .= date("Y/");
- if (!is_dir($base . $ruta)) {
- mkdir($base . $ruta);
- }
- $ruta .= date("m/");
- if (!is_dir($base . $ruta)) {
- mkdir($base . $ruta);
- }
- do {
- $nombreArchivo = str_replace("-", "", $ruta . "-" . $sec->generateRandomString(30));
- if ($archivo->extension) {
- $nombreArchivo .= "." . $archivo->extension;
- }
- } while (is_file($base . $nombreArchivo));
- if (!$archivo->saveAs($base . $nombreArchivo)) {
- return (new Respuesta())
- ->mensaje("Ocurrió un problema al guardar el archivo {$nombreArchivo}");
- }
- $usuario = Usuario::find()
- ->andWhere(["id" => $idUsuario])
- ->one();
- if ($usuario === null)
- return (new Respuesta($dominio . $nombreArchivo))
- ->mensaje("Se guardo el archivo {$nombreArchivo}");
- $usuario->foto = $dominio . $nombreArchivo;
- if (!$usuario->save())
- return (new Respuesta($usuario))
- ->esError()
- ->mensaje("Ocurrió un error al guardar la firma del perfil");
- $usuario->refresh();
- return (new Respuesta($dominio . $nombreArchivo))
- ->esExitoso(200)
- ->mensaje("Imagen Guardada correctamente");
- }
- }
|