PerfilController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace v1\controllers;
  3. use common\data\Respuesta;
  4. use common\rest\AuthController;
  5. use yii\helpers\Json;
  6. use v1\models\Usuario;
  7. use yii\web\UploadedFile;
  8. class PerfilController extends AuthController {
  9. public function actionIndex() {
  10. $id = \Yii::$app->getUser()->getId();
  11. $usuario = Usuario::find()
  12. ->andWhere(["id" => $id]);
  13. return new Respuesta($usuario, $this->limite, $this->pagina, $this->ordenar);
  14. /* $usuario = $this->usuario;
  15. return (new Respuesta())
  16. ->detalle($usuario->toArray()); */
  17. }
  18. public function actionCambiarFotoPerfil() {
  19. if (!$this->req->isPost) {
  20. throw new NotFoundHttpException();
  21. }
  22. $idUsuario = trim($this->req->getBodyParam("idUsuario", ""));
  23. $archivo = UploadedFile::getInstanceByName('archivo');
  24. $id = \Yii::$app->getUser()->getId();
  25. $dominio = \Yii::$app->getRequest()->getHostInfo() . "/assets/";
  26. if ($archivo === null) {
  27. return (new Respuesta())
  28. ->mensaje("No se recibió el archivo");
  29. }
  30. $sec = \Yii::$app->getSecurity();
  31. $base = \Yii::getAlias("@app") . "/web/assets/";
  32. $ruta = "fotoPerfil/";
  33. if (!is_dir($base . $ruta)) {
  34. mkdir($base . $ruta);
  35. }
  36. $ruta .= date("Y/");
  37. if (!is_dir($base . $ruta)) {
  38. mkdir($base . $ruta);
  39. }
  40. $ruta .= date("m/");
  41. if (!is_dir($base . $ruta)) {
  42. mkdir($base . $ruta);
  43. }
  44. do {
  45. $nombreArchivo = str_replace("-", "", $ruta . "-" . $sec->generateRandomString(30));
  46. if ($archivo->extension) {
  47. $nombreArchivo .= "." . $archivo->extension;
  48. }
  49. } while (is_file($base . $nombreArchivo));
  50. if (!$archivo->saveAs($base . $nombreArchivo)) {
  51. return (new Respuesta())
  52. ->mensaje("Ocurrió un problema al guardar el archivo {$nombreArchivo}");
  53. }
  54. $usuario = Usuario::find()
  55. ->andWhere(["id" => $idUsuario])
  56. ->one();
  57. if ($usuario === null)
  58. return (new Respuesta($dominio . $nombreArchivo))
  59. ->mensaje("Se guardo el archivo {$nombreArchivo}");
  60. $usuario->foto = $dominio . $nombreArchivo;
  61. if (!$usuario->save())
  62. return (new Respuesta($usuario))
  63. ->esError()
  64. ->mensaje("Ocurrió un error al guardar la firma del perfil");
  65. $usuario->refresh();
  66. return (new Respuesta($dominio . $nombreArchivo))
  67. ->esExitoso(200)
  68. ->mensaje("Imagen Guardada correctamente");
  69. }
  70. }