/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $data = Request::all();
     $statusCode = 422;
     $path_to_image_directory = 'images/events/' . $data['festival_id'] . '/fullsized/';
     $path_to_thumbs_directory = 'images/events/' . $data['festival_id'] . '/thumbs/';
     $newData = new Multimedia();
     $newData->user_id = Auth::user()->id;
     $response = ['files' => []];
     if (isset($_FILES['files'])) {
         if (preg_match('/[.](jpg)|(gif)|(png)|(JPG)|(GIF)|(PNG)$/', $_FILES['files']['name'][0])) {
             $filename = $_FILES['files']['name'][0];
             $source = $_FILES['files']['tmp_name'][0];
             $target = $path_to_image_directory . $filename;
             if (!file_exists($path_to_image_directory)) {
                 mkdir($path_to_image_directory, 0777, true);
             }
             move_uploaded_file($source, $target);
             $thumbFile = $this->createThumbnail($filename, $path_to_image_directory, $path_to_thumbs_directory);
             $newData->festival_id = isset($data['festival_id']) ? $data['festival_id'] : "";
             $newData->file_type = $_FILES['files']['type'][0];
             $newData->filename = asset($target);
             $newData->thumb = asset($thumbFile);
             $newData->poster = isset($data['poster']) ? "1" : "0";
             if ($newData->save()) {
                 $response['files'][] = ['name' => $filename, 'filetype' => $_FILES['files']['type'][0], "url" => asset($target), "thumbnailUrl" => asset($thumbFile)];
                 $statusCode = 200;
             } else {
                 $response['files'][] = ['name' => $filename, 'error' => 'File is not uploaded.'];
                 $statusCode = 422;
             }
         }
     }
     return Response::json($response, $statusCode);
 }
 /**
  * Creates a new Multimedia model desde el OBJETO
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionSubir2($objeto_id)
 {
     $model = new Multimedia();
     $model->objetos_id = $objeto_id;
     $m = $model->load(Yii::$app->request->post());
     if ($m) {
         // process uploaded image file instance
         $image = $model->uploadImage();
         if ($model->save()) {
             // upload only if valid uploaded file instance found
             if ($image !== false) {
                 $path = $model->getImageFile();
                 $image->saveAs($path);
             }
             return $this->redirect(['index', 'id' => $model->id, 'tipoMultimedia_id' => $model->tipoMultimedia_id]);
         }
     } else {
         return $this->render('subir', ['model' => $model, 'objeto_id' => $objeto_id]);
     }
     /*if ($model->load(Yii::$app->request->post()) && $model->save()) {
           return $this->redirect(['view', 'id' => $model->id, 'tipoMultimedia_id' => $model->tipoMultimedia_id]);
       } else {
           return $this->render('create', [
               'model' => $model,
           ]);
       }*/
 }
 /**
  * Displays a single Acervo model with images
  * @param integer $id
  * @return mixed
  */
 private function createOrUpdate($id = NULL, $ingreso_id = NULL, $ingreso_return = FALSE)
 {
     $model = NULL;
     $acervo_id = NULL;
     // Load Acervo ID From Model or Update ID
     $acervo = Yii::$app->request->post('Acervo');
     if (!empty($acervo) && array_key_exists('id', $acervo)) {
         $acervo_id = $acervo['id'];
     } elseif (!empty($id)) {
         $acervo_id = $id;
     }
     // Load Acervo model or Create new one
     if (!empty($acervo_id)) {
         $model = $this->findModel($acervo_id);
     } else {
         $model = new Acervo();
         $model->publicar_id = 1;
     }
     // Load Ingreso ID.
     //Request comes from Ingreso form
     if (!empty($ingreso_id)) {
         $model->ingreso_id = $ingreso_id;
         if ($model->isNewRecord) {
             $model->nroA = $ingreso_id;
         }
     }
     // Load Form data into model & Save it
     if ($model->load(Yii::$app->request->post())) {
         $dia = '';
         $dia2 = '';
         $mes = '';
         $mes2 = '';
         $anio = '';
         $anio2 = '';
         $fechaInicio = Yii::$app->request->post('fechaInicioRestauracion-acervo-fechainiciorestauracion');
         $fechaFin = Yii::$app->request->post('fechaFinRestauracion-acervo-fechafinrestauracion');
         if (strlen($fechaFin) > 0) {
             list($dia2, $mes2, $anio2) = explode("/", $fechaFin);
             $model->fechaFinRestauracion = $anio2 . '-' . $mes2 . '-' . $dia2;
         }
         if (isset($fechaInicio) and strlen($fechaInicio) > 0) {
             list($dia, $mes, $anio) = explode("/", $fechaInicio);
             $model->fechaInicioRestauracion = $anio . '-' . $mes . '-' . $dia;
             //Yii::$app->request->post('fechaFinRestauracion-acervo-fechafinrestauracion');
         }
         if (!$model->save()) {
             // exception err var_dump($model);die();or de guardado
         }
         $acervo_id = $model->id;
     }
     //var_dump(Yii::$app->request);die();
     // Save UbicacionExterna
     if ($this->saveUbicacionExterna($acervo_id, Yii::$app->request->post('UbicacionExterna'), Yii::$app->request->post('fechaInicio-ubicacionexterna-fechainicio'), Yii::$app->request->post('fechaCierre-ubicacionexterna-fechacierre'))) {
         Yii::$app->session->setFlash('success', ['type' => 'success', 'icon' => 'fa fa-users', 'message' => 'Ubicación Externa guardada exitosamente', 'title' => 'Carga de ubicación externa', 'positonY' => 'top', 'positonX' => 'left']);
     }
     // exception error de guardado
     // Load images
     $files = UploadedFile::getInstances($model, 'files');
     $upload_ok = TRUE;
     $filesUploads = 0;
     foreach ($files as $file) {
         $filesUploads++;
         $multimedia = new Multimedia();
         $multimedia->objetos_id = $acervo_id;
         $multimedia->tipoMultimedia_id = 1;
         // Tipo Imagen
         $ext = end(explode(".", $file->name));
         $filename = $acervo_id . "_" . Yii::$app->security->generateRandomString() . ".{$ext}";
         $multimedia->path = $multimedia->getImageFilePath() . $filename;
         if ($file->saveAs($multimedia->path, true)) {
             $multimedia->webPath = $multimedia->getUrlImageFolder() . $filename;
             $multimedia->save();
         } else {
             $upload_ok = FALSE;
         }
         $upload_ok = $upload_ok && TRUE;
     }
     if ($filesUploads > 0) {
         if ($upload_ok) {
             Yii::$app->session->setFlash('success', ['type' => 'success', 'icon' => 'fa fa-users', 'message' => 'Imágenes cargadas exitosamente', 'title' => 'Carga de imágenes', 'positonY' => 'top', 'positonX' => 'left']);
         } else {
             Yii::$app->session->setFlash('error', ['icon' => 'fa fa-users', 'message' => 'Una o mas imagenes han sigo cargadas con error', 'title' => 'Carga de imágenes', 'positonY' => 'top', 'positonX' => 'left']);
         }
     }
     // View to Render
     //Obtener fotos
     $dataprovider = new ArrayDataProvider(['allModels' => Multimedia::findAll(['objetos_id' => $model->id])]);
     //Obtener Ubicaciones Externas
     $dataprovider_ue = new ArrayDataProvider(['allModels' => UbicacionExterna::findAll(['acervo_id' => $model->id])]);
     if (Yii::$app->request->post('saveClose') == 1) {
         if ($ingreso_return) {
             return $this->redirect(['ingreso/update', 'id' => $model->ingreso_id, 'dataProvider' => $dataprovider, 'dataProviderUbicacionExterna' => $dataprovider_ue]);
         }
         return $this->redirect(['view', 'id' => $model->id, 'dataProvider' => $dataprovider, 'dataProviderUbicacionExterna' => $dataprovider_ue]);
     }
     return $this->render('ingreso', ['model' => $model, 'enableReturn' => $ingreso_return, 'dataProvider' => $dataprovider, 'dataProviderUbicacionExterna' => $dataprovider_ue]);
 }