/** * Store a newly created resource in storage. * * @return Response */ public function store() { $campos['producto'] = Input::get('producto'); $campos['descripcion'] = Input::get('descripcion'); $campos['marca'] = Input::get('marca'); $campos['cantidad'] = Input::get('cantidad'); $campos['precio_inicial'] = Input::get('precio_inicial'); $campos['img'] = Input::get('img'); $campos['categoria'] = Input::get('categoria_id'); $campos['subcategoria'] = Input::get('subcategoria_id'); $campos['activo'] = Input::get('activo'); $validacion = Validator::make($campos, ['producto' => 'required', 'descripcion' => 'required', 'marca' => 'required', 'cantidad' => 'required', 'precio_inicial' => 'required', 'img' => 'required', 'categoria' => 'required', 'subcategoria' => 'required', 'activo' => 'required']); if ($validacion->fails()) { return Redirect::back()->withInput()->withErrors($validacion); } ValidaAccesoController::validarAcceso('productos', 'escritura'); $producto = new Productos(); #extensiones permitidas $exts = array('png', 'jpg', 'gif'); $file = Input::file('imgFile'); $error = "Error al subir el archivo"; $bnd = 0; $destinationPath = 'assets/img/productos/'; $strRandom = str_random(8); $fileName = $strRandom . "_" . $file->getClientOriginalName(); $_POST['imgName'] = $fileName; $extension = $file->getClientOriginalExtension(); if (!in_array(strtolower($extension), $exts)) { $error = "Solo se aceptan los siguientes formatos de imagenes png, jpg, gif"; $bnd = 1; } #se valida que la extension sea permitida $upload_success = 0; if ($bnd == 0) { $upload_success = Input::file('imgFile')->move($destinationPath, $fileName); } #se valida que se hay la img se cargo y que la extension sea permitida if ($upload_success && $bnd == 0) { if ($producto->validSave(Input::all())) { return Redirect::route('productos.index'); } else { #eliminamos el archivo si no se guardo correctamente el producto File::delete($destinationPath . $fileName); return Redirect::route('productos.create')->withInput()->withErrors($producto->errores); } } else { return Redirect::route('productos.create')->withInput()->withErrors(array($error)); } }