/** * 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]); }