public function storeSlider() { $slide = new Slider(); $input = ["nom" => Input::get('nom'), "alt" => Input::get('alt')]; $rules = array('nom' => 'required|max:255', 'alt' => 'required|max:255'); $messages = array('required' => ":attribute est requis pour l'ajout d'une nouvelle image au carousel.", 'max' => ':attribute est trop long.'); $validator = Validator::make(Input::all(), $rules, $messages); if ($validator->fails()) { $messages = $validator->messages(); return Redirect::to(URL::previous())->withErrors($validator); } else { $uploadedImage = Input::file('image'); // Création d'un nom aléatoire pour l'enregistrement $fileName = md5(time() + rand(0, 1000)) . '.jpg'; $savePath = public_path() . '/uploads/slider/'; $extension = strtolower($uploadedImage->getClientOriginalExtension()); if ($extension == "jpg" || $extension == "jpeg" || $extension == "png") { // Si on a choisi de rendimensionner if (Input::get('resample') != null) { // Récupération de la taille de l'image envoyée list($uploadedWidth, $uploadedHeight) = getimagesize($uploadedImage); // Nouvelles dimensions $newWidth = 1165; $newHeight = 350; // Création d'une nouvelle image vide et sample de l'image envoyée $newImage = imagecreatetruecolor($newWidth, $newHeight); if ($extension == "jpg" || $extension == "jpeg") { $uploadedImageSample = imagecreatefromjpeg($uploadedImage); } else { $uploadedImageSample = imagecreatefrompng($uploadedImage); } // Rendimensionnement et enregistrement de la nouvelle image imagecopyresampled($newImage, $uploadedImageSample, 0, 0, 0, 0, $newWidth, $newHeight, $uploadedWidth, $uploadedHeight); imagejpeg($newImage, $savePath . $fileName, 100); } else { $uploadedImage->move($savePath, $fileName); } // Lien en BDD et position (max+1) $input['link'] = $fileName; $input['pos'] = Slider::get()->max('pos') + 1; Session::flash('flash_msg', "La nouvelle image a bien été ajoutée."); Session::flash('flash_type', "success"); $slide->fill($input)->save(); return Redirect::to("/admin/slider"); } else { Session::flash('flash_msg', "Le fichier importé n'est pas valide (jpeg ou png uniquement)."); Session::flash('flash_type', "fail"); return Redirect::to("/admin/slider"); } } }