public static function agregarImagen($imagen = null, $epigrafe = null, $coordenadas = null) { $respuesta = array(); $datos = array('imagen' => $imagen, 'epigrafe' => $epigrafe); $rules = array('imagen' => array('mimes:jpeg,png,gif')); $validator = Validator::make($datos, $rules); if ($validator->fails()) { //return Response::make($validator->errors->first(), 400); //Si está todo mal, carga lo que corresponde en el mensaje. $respuesta['mensaje'] = $validator; $respuesta['error'] = 'no pasa'; } else { $file = $imagen; $count = count($file->getClientOriginalName()) - 4; $filename = Str::limit(Str::slug($file->getClientOriginalName()), $count, ""); $extension = $file->getClientOriginalExtension(); //if you need extension of the file //$extension = File::extension($file['name']); $carpeta = '/uploads/'; $directory = public_path() . $carpeta; //$filename = sha1(time() . Hash::make($filename) . time()) . ".{$extension}"; //Pregunto para que no se repita el nombre de la imagen if (!is_null(Imagen::imagenPorNombre($filename . ".{$extension}"))) { $filename = $filename . "(" . Str::limit(sha1(time()), 3, "") . ")" . ".{$extension}"; } else { $filename = $filename . ".{$extension}"; } //$upload_success = $file->move($directory, $filename); //resize(width, height) if (Image::make($file)->resize(null, 800, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($directory . $filename)) { $datos = array('nombre' => $filename, 'carpeta' => $carpeta, 'tipo' => 'G', 'ampliada' => '', 'estado' => 'A', 'fecha_carga' => date("Y-m-d H:i:s"), 'usuario_id_carga' => Auth::user()->id); $imagen = static::create($datos); $datos_lang = array('epigrafe' => $epigrafe, 'estado' => 'A', 'fecha_carga' => date("Y-m-d H:i:s"), 'usuario_id_carga' => Auth::user()->id); $idiomas = Idioma::where('estado', 'A')->get(); foreach ($idiomas as $idioma) { /* if ($idioma->codigo != Config::get('app.locale')) { $datos_lang['url'] = $idioma->codigo . "/" . $datos_lang['url']; } * */ $imagen->idiomas()->attach($idioma->id, $datos_lang); } $temporary = Image::make($file)->resize(null, 250, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save(public_path() . "/temporary/" . $filename); $imagen_chica = Imagen::agregarImagenChica($filename, $epigrafe, $imagen->id, $coordenadas); //Mensaje correspondiente a la agregacion exitosa $respuesta['mensaje'] = 'Imagen creada.'; $respuesta['error'] = false; $respuesta['data'] = $imagen; //return Response::json('success', 200); } else { //Mensaje correspondiente a la agregacion exitosa $respuesta['mensaje'] = 'Imagen errónea.'; $respuesta['error'] = true; $respuesta['data'] = null; //return Response::json('error', 400); } } return $respuesta; }