[script] Création de vignette jpeg ou png

WRInaute passionné
Je vous laisse un petit script que je me suis adapté pour mes besoins personnel.

Il permet de créer une vignette à partir d'une image originale.
La vignette est enregistré sur le serveur et ne peut être supérieure à la taille de l'original.

Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).

Vous me direz ainsi si je peux l'optimiser un peu

Code:
/**********************************************************************
- vignette($file, $maxWidth = 450, $maxHeight = 350)
- Création d'une vignette à partir d'une image ($file)
- Les extension prise en compte sont jpg et png (le gif est remplacé par le png ; le gif animé n'est jamais redimensionné)
- Dernière version : 27/11/2006

* $file : chemin vers le fichier image à redimensionner
* $maxWidth : largeur maximum que dois faire la miniature (450 par défaut)
* $maxHeight : Hauteur maximum que dois faire l'image (350 par défaut)
**********************************************************************/
function vignette($file, $maxWidth = 450, $maxHeight = 350){
	
	// Vérification des erreurs dans les paramètres de la fonction
	//============================================================
	if(!file_exists($file)){
		// Si le fichier passé en paramètre n'existe pas
		return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.';
	}
	elseif(empty($file)){
		// Si le fichier n'a pas été indiqué
		return 'Nom du fichier non renseigné.';
	}
	elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){
		// Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
		return 'Valeur de la largeur incorrecte.';
	}
	elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < 0){
		// Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
		return 'Valeur de la hauteur incorrecte.';
	}
	//============================================================
	
	$fichier = realpath($file); // Chemin canonique absolu de l'image
	$dir = dirname($file).'/'; // Chemin du dossier contenant l'image
	$infoImg = getimagesize($fichier); // Récupération des infos de l'image
	$imgWidth = $infoImg[0]; // Largeur de l'image
	$imgHeight = $infoImg[1]; // Hauteur de l'image
	
	// Initialisation des variables selon l'extension de l'image
	switch($infoImg[2]){
		case 2:
			$img = imagecreatefromjpeg($fichier); // Création d'une nouvelle image jpeg à partir du fichier 
			$extImg = '.jpg'; // Extension de l'image
		break;
		case 3:
			$img = imagecreatefrompng($fichier); // Création d'une nouvelle image png à partir du fichier
			$extImg = '.png';
	}
	
	// Initialisation des dimensions de la vignette si elles sont supérieures à l'original
	if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
	if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
	
	$whFact = $maxWidth/$maxHeight; // Facteur largeur/hauteur des dimensions max de la vignette
	$imgWhFact = $imgWidth/$imgHeight; // Facteur largeur/hauteur de l'original
	
	// Fixe les dimensions de la vignette
	if($whFact < $imgWhFact){
		// Si largeur déterminante
		$thumbWidth  = $maxWidth;
		$thumbHeight = $thumbWidth / $imgWhFact;
	} else {
		// Si hauteur déterminante
		$thumbHeight = $maxHeight;
		$thumbWidth  = $thumbHeight * $imgWhFact;
	}
	
	$imgThumb = imagecreatetruecolor($thumbWidth, $thumbHeight); // Création de la vignette
	
	imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insère l'image de base redimensionnée
	
	$fileName = basename($file, $extImg); // Nom du fichier sans son extension
	$imgThumbName = $dir.$fileName.'-min'.$extImg; // Chemin complet du fichier de la vignette
	
	//Création du fichier de la vignette
	$fp = fopen($imgThumbName, "w");
	fclose($fp);
	
	// Renvoi la vignette créée
	switch($infoImg[2]){
		case 2:
			imagejpeg($imgThumb, $imgThumbName, 50); // Renvoi d'une image jpeg avec une qualité de 50
			break;
		case 3:
			imagepng($imgThumb, $imgThumbName);
	}
	
	return $imgThumbName;

}
:wink:
 
WRInaute accro
Bonjour,

si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)
 
WRInaute occasionnel
e-kiwi a dit:
Bonjour,

si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)

Bonjour,
Oui c'est un script qui m'intéresse.
Pour l'instant je travail en amont avec Photoshop mais j'ai un site en préparation pour lequel cela me serait très utile.
Merci

Et je testerai le script précédent aussi.
Merci
 
WRInaute impliqué
medium69 a dit:
Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).


http://gnu.fyxm.net/philosophy/gif.fr.html#venuenote

Le brevet Unisys a expiré le 20 juin 2003 aux États-Unis; en Europe, le 18 juin 2004; au Japon, le 20 juin 2004 et au Canada, le 7 juillet 2004. Le brevet américain de IBM a expiré le 11 août 2006. Le Software Freedom Law Center dit qu'après le 1er octobre 2006, il n'y aura plus de revendication de brevet significative pour interférer avec l'emploi du format GIF.

.. et imagecreatefromgif marche très bien :roll:
 
WRInaute passionné
yep

moi j'en ai fait un qui met à jour un dossier mirroir

tu lances le script et il update le dossier à l'identique et en passant efface les vignettes dont les images ont disparues

je le publierai quand j'aurai fini mon site et surtout quand ovh voudra bien me livrer le dedié que j'ai commandé et payé depuis plus de deux mois

rog
 
WRInaute passionné
La Chaise sauvage a dit:
medium69 a dit:
Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).


http://gnu.fyxm.net/philosophy/gif.fr.html#venuenote

Le brevet Unisys a expiré le 20 juin 2003 aux États-Unis; en Europe, le 18 juin 2004; au Japon, le 20 juin 2004 et au Canada, le 7 juillet 2004. Le brevet américain de IBM a expiré le 11 août 2006. Le Software Freedom Law Center dit qu'après le 1er octobre 2006, il n'y aura plus de revendication de brevet significative pour interférer avec l'emploi du format GIF.

.. et imagecreatefromgif marche très bien :roll:

Je n'ai jamais prétendu que imagecreatefromgif ne marchait pas.

:arrow: Je n'étais pas au courant du problème de revendication du brevet

:arrow: Cela dit, ont peut sans problème redimensionner un gif simple (il suffit d'ajouter cette partie dans le code) ainsi que tout les autres formats d'images (je me suis limité au plus courant sur le web)

:arrow: On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.


Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution
 
WRInaute passionné
e-kiwi a dit:
Bonjour,

si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)

C'est une partie que je n'ai pas encore étudiée, mais qui m'intéresse.

Si tu peux nous donner le script :wink:
 
WRInaute impliqué
medium69 a dit:
:arrow: On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.


Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution

je suis en train de bosser sur la question justement... mais ce n'est pas vraiment montrable en l'état... à suivre
 
WRInaute passionné
Je vois qu'il faudrait remplacer par imagecopyresized

:arrow: imagecopyresampled ou imagecreatetruecolor

quels sont les changements qui y sont bénéfiques ?
 
WRInaute passionné
La Chaise sauvage a dit:
medium69 a dit:
:arrow: On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.


Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution

je suis en train de bosser sur la question justement... mais ce n'est pas vraiment montrable en l'état... à suivre

Retiens mon pseusdo car si tu y arrives cela m'intéresse au plus au point :p
 
WRInaute accro
mon appel au script (pour une image en cours d upload):
copier_image($_FILES['photo']['tmp_name'],$HTTP_POST_FILES['photo']['name'],$destination,$longueur,$hauteur,$logo);

attention, convertit n'importe quel type de fichier en jpeg, mais enfantin à changer

Code:
function copier_image($photo,$nom_photo,$destination,$longueur_max,$hauteur_max,$logo)
	{
 // ----extention --------
 $ext = explode(".", $nom_photo);
if(count($ext) > 1) $ext = strtolower(end($ext));
if (($ext=='jpg') or ($ext=='jpeg') or ($ext=='jpe'))
	{
	 $type='jpg';
	 $est_image='oui';
	}
else if ($ext=='gif')
	{
	 $type='gif';
	 $est_image='oui';
	}
else if ($ext=='png')
	{
	 $type='png';
	 $est_image='oui';
	}
else $est_image='non';

if ($est_image=='oui')
	{
	 // ----info de l'image
	 $size = GetImageSize($photo);
	 if ($type=='jpg') $src_im = ImageCreateFromJpeg($photo);
	 else if ($type=='gif') $src_im = ImageCreateFromGif($photo);
	 else if ($type=='png') $src_im = ImageCreateFromPng($photo);
	 $longueur_photo = $size[0];
	 $hauteur_photo = $size[1];

	 if ($longueur_photo>$hauteur_photo) { $longueur_photo=$longueur_max; $hauteur_photo=$size[1]*$longueur_max/$size[0];   } 
	 elseif ($longueur_photo<$hauteur_photo){ $hauteur_photo=$hauteur_max;  $longueur_photo=$size[0]*$hauteur_max/$size[1];  }
	 else {  $longueur_photo=$longueur_max;  $hauteur_photo=$hauteur_max; }
				
	 $x=	($longueur_max-$longueur_photo)/2; 
	 $y=	($hauteur_max-$hauteur_photo)/2; 

	 if ($longueur_max==$hauteur_max)
	 	{
		$longueur=$longueur_max;
		$hauteur=$hauteur_max;
		}
	else
		{
		$longueur=$longueur_photo;
		$hauteur=$hauteur_photo;
		$x=0;
		$y=0;
		}
	 $dst_im = ImageCreateTrueColor($longueur,$hauteur);
	 $blanc=imagecolorallocate($dst_im,255,255,255); 
	 imagefill($dst_im , 0,0, $blanc);
		 
	 ImageCopyResampled($dst_im,$src_im,$x,$y,0,0,$longueur_photo,$hauteur_photo,$size[0],$size[1]);
	 if ($logo=='oui')
	 	{
		 $im_logo = ImageCreateFromGif("../img/logo.gif");
		 ImageCopyResampled($dst_im,$im_logo,10,10,0,0,223,50,223,50);
		 }
	 	
	 if (ImageJpeg($dst_im,$destination,95)) return true;
	 else return false;
		
	}
	else message_admin_erreur("Attention : La photo n'est pas au format valide (jpg, gif, png). elle ne sera donc pas copiée");
}

bien sur on peut l arranger pour faire une fonction de detection de type de fichier et une creation finale d'image en fonciton du type voulu (jpeg, gif, png, ...)

edit : ah oui, precisions, cette version sort une image carré me semble t'il (pour les besoins de mon site), en centrant l'image uploadé dedans, il faut donc virer les lignes du mileu si on veut une image aux proportions homotetiquement identiques à l originale :)
 
WRInaute accro
je ne sais pas, mais c est tres simple de faire un :

$ext = explode(".", $nom_photo);
if(count($ext) > 1) $ext = strtolower(end($ext));

l extension donne le type. mais apres, utiliser le type pour appeler le bon ImageJpeg, ImageGif, ...
 
WRInaute passionné
j'avais compris

merci kiwi, mais en passant par une fonction qui te retourne le type de l'image c'est plus fiable

je pense que la fonction analyse l'entête du fichier

rog
 
WRInaute passionné
rog a dit:
j'avais compris

merci kiwi, mais en passant par une fonction qui te retourne le type de l'image c'est plus fiable

je pense que la fonction analyse l'entête du fichier

rog

Je me sert de getimagesize, qui retourne plusieurs infos :

getimagesize() va déterminer la taille des images de type GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP et en retourner les dimensions, le type d'image et une chaîne type height/width à placer dans une balise HTML <IMG> normale.

autrement je sais qu'il y en à une autre qui peut récupéré la largeur, la hauteur, le type il me semble, mais tout cela peut se faire en une fois avec celle que je t'indique.
 
WRInaute occasionnel
Salut,

C'est aussi ce genre de script que je cherche, mais peut on penser générer une miniature aux coins arrondis si l'originale et carré ou rectangulaire?
 
WRInaute impliqué
ckarone : oui bien sûr que c'est possible, mais ça demande à mon avis un peu de bricolage - je ne sais pas si une telle classe ou fonction est déjà trouvable sur le net, mais en tout cas l'idée m'intéresse..
 
WRInaute impliqué
Et hop
Nécessite une image corner.png telle que celle-ci

S'appelle comme ceci :
<?php
include('includes/roundimg.class.php');

$img = new roundImg('http://www.example.com/image.jpg',30);
?>

Cette classe (tout à fait perfectible mais fonctionnelle) accepte des jpg, gif, et png, et produit des png (mais là aussi, c'est facile à adapter dans la fonction output)

les différents coins sont en arguments optionnels, par exemple

$img = new roundImg('http://www.example.com/image.jpg',30,TRUE,FALSE,TRUE,FALSE);

n'arrondira que le coin en haut à gauche et celui en bas à a droite

voici roundimg.class.php :

Code:
<?php class roundImg {
	var $img	= '';
	var $rad	= 50;
	var $type	= 0;
	var $url_corner = 'includes/corner.png';
	
	function roundImg($image,$radius=50,$tl=TRUE,$tr=TRUE,$br=TRUE,$bl=TRUE) {
		$this->img = $image;
		$this->rad = $radius;		
		$this->getInfos();
		$this->prepareCorner();
		$this->createImg();
		$this->addCorners($tl,$tr,$br,$bl);
		$this->output();
	}
	
	function getInfos() {
		list($this->x, $this->y, $this->type) = getimagesize($this->img);		
		$this->path = pathinfo($this->img);
	}
	
	function prepareCorner() {
		if(!($coin = imagecreatefrompng($this->url_corner))) 
			$this->err('Erreur à l\'ouverture de '.$this->url_corner.' !',1);			
		$this->coinX = imagesx($coin);	
		$this->coinY = imagesy($coin);
		if(!($this->masque = imagecreatetruecolor($this->rad, $this->rad)))	
			$this->err('Erreur à la création du masque !',1);		
		imagecopyresampled($this->masque, $coin, 0, 0, 0, 0, $this->rad, $this->rad, $this->coinX, $this->coinY);		
	}
	
	function createImg() { 		
		switch($this->type) {
			case 1 : // GIF
					$this->out = imagecreate($this->x,$this->y); 
					$this->out = imagecreatefromgif($this->img); 			
				break; 
			case 2 : // JPG
					$this->out = imagecreatetruecolor($this->x,$this->y); 
					$this->out = imagecreatefromjpeg($this->img); 
				break; 
			case 3 : // PNG
					$this->out = imagecreatetruecolor($this->x,$this->y); 					
					$this->out = imagecreatefrompng($this->img);
				break;
			default : $this->err('Images GIF, JPG ou PNG seulement !',1); break;
		}	
		$this->black = imagecolorallocate($this->out,0,0,0);	
		$this->size = getimagesize($this->img);
	}
	
	function addCorners($topleft,$topright,$bottomright,$bottomleft) {		
		if($topleft == TRUE) {
			$x = 0;		
			$y = 0;
			$this->merge($x,$y);
		}
		if($topright == TRUE) {
			$x = $this->x - $this->rad;		
			$y = 0;
			$this->merge($x,$y,270);
		}
		if($bottomright == TRUE) {
			$x = $this->x - $this->rad;		
			$y = $this->y - $this->rad;
			$this->merge($x,$y,180);
		}
		if($bottomleft == TRUE) {
			$x = 0;		
			$y = $this->y - $this->rad;
			$this->merge($x,$y,90);
		}		
		$wh = imagecolorallocate($this->masque,255,255,255);
		imagecolortransparent($this->out,$wh);
		imagedestroy($this->masque);
	}	
	
	function merge($xx,$yy,$angle=FALSE) {
		if($angle!==FALSE) $c = imagerotate($this->masque, $angle, 0);
		else $c = $this->masque;
		imagecolortransparent($c,$this->black);
		imagecopymerge($this->out, $c, $xx, $yy, 0, 0, $this->rad, $this->rad, 100);
	}	
	
	function output() {
		header('Content-Type: image/png');
		imagepng($this->out);		
		imagedestroy($this->out);
	}
	
	function err($txt,$die=0){
		($die==0) ? $this->logs .= $txt.'<br/>' : die('<br/>Erreur : '.$txt);
	}
}

?>
 
WRInaute passionné
j'ai une option custom icon sur mon binder

je viens de me rendre qu'il y avait une partie non negligeable d'utilisateurs qui n'ont rien compris et envoient un exe

donc ==> echec de compilation

je vais devoir verifier le type et la fonction est getimagesize qui va me renvoyer le type d'image

rog
 
Nouveau WRInaute
ajout code defectueux

bonjour,
j'ai compilé le script à un autre pour incrémenter un BDD mais du coup mon upload de vignette ne marche pas, j'ai le message "L'upload de la vignette a échoué ! ", mais je ne sais pas pourquoi. :(

Toute aide est bienvenue :lol:

Voici le code recompilé.

Code:
<?php
session_start();
 include ('../_connexion.php');
/**********************************************************************
- vignette($file, $maxWidth = 450, $maxHeight = 350)
- Création d'une vignette à partir d'une image ($file)
- Les extension prise en compte sont jpg et png (le gif est remplacé par le png ; le gif animé n'est jamais redimensionné)
- Dernière version : 27/11/2006

* $file : chemin vers le fichier image à redimensionner
* $maxWidth : largeur maximum que dois faire la miniature (450 par défaut)
* $maxHeight : Hauteur maximum que dois faire l'image (350 par défaut)
**********************************************************************/

function vignette($file = photo, $maxWidth = 60, $maxHeight = 60){
   
   // Vérification des erreurs dans les paramètres de la fonction
   //============================================================
   if(!file_exists($file)){
      // Si le fichier passé en paramètre n'existe pas
      return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.';
   }
   elseif(empty($file)){
      // Si le fichier n'a pas été indiqué
      return 'Nom du fichier non renseigné.';
   }
   elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){
      // Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
      return 'Valeur de la largeur incorrecte.';
   }
   elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < 0){
      // Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
      return 'Valeur de la hauteur incorrecte.';
   }
   //============================================================
   
   $fichier = realpath($file); // Chemin canonique absolu de l'image
   $dir = dirname($file).'http://allhambra.free.fr/Peter%20span%20design/Art/photo/art_table/'; // Chemin du dossier contenant l'image
   $infoImg = getimagesize($fichier); // Récupération des infos de l'image
   $imgWidth = $infoImg[0]; // Largeur de l'image
   $imgHeight = $infoImg[1]; // Hauteur de l'image
   
   // Initialisation des variables selon l'extension de l'image
   switch($infoImg[2]){
      case 2:
         $img = imagecreatefromjpeg($fichier); // Création d'une nouvelle image jpeg à partir du fichier
         $extImg = '.jpg'; // Extension de l'image
      break;
      case 3:
         $img = imagecreatefrompng($fichier); // Création d'une nouvelle image png à partir du fichier
         $extImg = '.png';
   }
   
   // Initialisation des dimensions de la vignette si elles sont supérieures à l'original
   if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
   if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
   
   $whFact = $maxWidth/$maxHeight; // Facteur largeur/hauteur des dimensions max de la vignette
   $imgWhFact = $imgWidth/$imgHeight; // Facteur largeur/hauteur de l'original
   
   // Fixe les dimensions de la vignette
   if($whFact < $imgWhFact){
      // Si largeur déterminante
      $thumbWidth  = $maxWidth;
      $thumbHeight = $thumbWidth / $imgWhFact;
   } else {
      // Si hauteur déterminante
      $thumbHeight = $maxHeight;
      $thumbWidth  = $thumbHeight * $imgWhFact;
   }
   
   $imgThumb = imagecreatetruecolor($thumbWidth, $thumbHeight); // Création de la vignette
   
   imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insère l'image de base redimensionnée
   
   $fileName = basename($file, $extImg); // Nom du fichier sans son extension
   $imgThumbName = $dir.$fileName.'-min'.$extImg; // Chemin complet du fichier de la vignette
   
   //Création du fichier de la vignette
   $fp = fopen($imgThumbName, "w");
   fclose($fp);
   
   // Renvoi la vignette créée
   switch($infoImg[2]){
      case 2:
         imagejpeg($imgThumb, $imgThumbName, 50); // Renvoi d'une image jpeg avec une qualité de 50
         break;
      case 3:
         imagepng($imgThumb, $imgThumbName);
   }
   
   return $imgThumbName;

}
 ?> 
 <?
				$DESTINATION_FOLDER = "vignette";
				$MAX_SIZE = 1000000;
				$AUTH_EXT = array(".jpg", ".gif");
				
				if(!empty($_FILES["file"]["name"]))
					{
					$nomFichier = $_FILES["file"]["name"] ;
					$nomTemporaire = $_FILES["file"]["tmp_name"] ;
					$typeFichier = $_FILES["file"]["type"] ;
					$poidsFichier = $_FILES["file"]["size"] ;
					$codeErreur = $_FILES["file"]["error"] ;
					$extension = strrchr($nomFichier, ".");
					$nomFichier1 = "article-" . $compteur . $extension;
					if($poidsFichier != 0)
						{
						if($poidsFichier < $MAX_SIZE)
							{
							if(isExtAuthorized($extension))
								{
								$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier1);
								if($uploadOk) {
								$query="UPDATE 1two_ecommerce_prod SET vignette='vignette/" . "$nomFichier1' WHERE compteur='$compteur'";
								$resswitch = @mysql_query($query,$db);
								
								echo "<span class='texte'>L'upload de la vignette a réussi !<br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
								}
								else { echo("<span class='texte'>L'upload de la vignette a échoué !<br><br></span>"); }
								}
							else
								{
								echo "<span class='texte'><font color='FF0000'>Les fichiers avec l'extension " . $extension . " ne peuvent pas être uploadés !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
								}
							}
						else
							{
							$tailleKo = $MAX_SIZE / 1000;
							echo "<span class='texte'><font color='FF0000'>Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : " . $tailleKo . " Ko.</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
							}		
						}
					else
						{ 
						echo "<span class='texte'><font color='FF0000'>Le fichier choisi est invalide !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
						}
					}
				else
					{ 
					echo "<span class='texte'><font color='FF0000'>Vous n'avez pas choisi de fichier !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
					}
					
?>
 
WRInaute impliqué
rog a dit:
j'ai une option custom icon sur mon binder

je viens de me rendre qu'il y avait une partie non negligeable d'utilisateurs qui n'ont rien compris et envoient un exe

donc ==> echec de compilation

salut, si c'est quelque chose d'uploadé dans la variable $_FILES tu as le content type renvoyer par le navigateur, en recherchant image par exemple tu peux déjouer les farfelues...

php.net a dit:
$_FILES['userfile']['type']

Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, cela pourra être "image/gif". Ce type mime n'est cependant pas vérifié du côté de PHP et, donc, ne prend pas sa valeur pour se synchroniser.
:)
 
Discussions similaires
Haut