18
Jan

Uploader un image sur un serveur PHP et créer sa thumbnail

Juste un petit bout de code pour côté serveur en php pour réceptionner le fichier et le sauver.

	// Les types d'images permis
	$allowed = array('png','jpeg','jpg', 'jpeg');
	$desired_width = 150;
	$filesUploadsDir = ND_IMPORT_MODULE_DIR."/uploads/images/";
	$filesUploadsDirThumbs = ND_IMPORT_MODULE_DIR."/uploads/thumbs/";

	$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
	$basename  = pathinfo($file['name'], PATHINFO_BASENAME);

	if( file_exists($file['tmp_name']) && in_array($extension, $allowed)){

		$filename = uniqid()."-".$basename;
		$filename = str_replace(' ','-', $filename);
		$filename = strtolower($filename);
		$filename  = filter_var($filename, FILTER_SANITIZE_STRING);
		$fname = $filename .".". $extension;

		$filepath = $filesUploadsDir.$fname;

		// On déplace le fichier des tmp vers le bon dossier.
		move_uploaded_file($_FILES["file"]['tmp_name'], $filepath);

		/* Lecture de l'image source pour créer une thumbnail */
		$source = imagecreatefromjpeg($filepath);
		$width = imagesx($source);
		$height = imagesy($source);

		/* trouver la largeur en fonction de la longueur */
		$desired_height = floor($height * ($desired_width / $width));

		/* Creation d'une image virtuelle */
		$virtual_image = imagecreatetruecolor($desired_width, $desired_height);

		/* Copy de la source et redimensionnement */
		imagecopyresampled($virtual_image, $source, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);

		/* Creation du thumbnail */
		imagejpeg($virtual_image, $filesUploadsDirThumbs.$filename."_150x150.".$extension);
	}
Aucun commentaire

Leave a Comment

Your email address will not be published. Required fields are marked *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Contactez-nous

Formulaire de contact

    Votre nom (obligatoire)

    Votre email (obligatoire)

    Votre téléphone (obligatoire)

    Sujet

    Votre message