J'ai regarder rapidement le codage de l'envoie d'une image, et je voudrais mettre le doigt sur un probleme qui apparaitra lors du codage des fonction spécifique pour le jpg, le png, ... (pour tout ce qui est la création d'une miniature réelle, et non pas un resize à la balise <img />).
Ce probleme se situe lors de l'identification du type de l'image :
La fonction $_FILES['userfile']['type']; donne faussement le type d'un fichier, en fait, il se contente de donner le mime associé à l'extension.
Mais il arrive souvent que l'extension ne reflète pas réellement le type de fichier.
Et oui, il ne faut pas oublier que l'extension n'est qu'une indication, et non une "parole d'évangile".
Pour preuve, changer l'extension d'une image gif, en jpg, vous arrivera sans pb à l'ouvrir avec votre logiciel d'image préféré (certains logiciel comme IrfanView indique que l'extension n'est pas la bonne, et propose de la changer).
Donc, pour récupérer véritablement l'extension d'un fichier mieux vaut faire comme ça :
@move_uploaded_file($file,$dest_file);
$size = @getimagesize($dest_file);
$size['mime'] sera égale au type véritable de l'image.
Malheuresement, le plus souvent, on doit récupérer le type du fichier avant de faire le move_uploaded_file(); or getimagesize doit s'effectuer après, donc on est obliger d'utiliser un $_FILES['userfile']['type']; pour déterminer le type, faire le move_uploaded_file(); puis récupérer le type véritable de l'image, et renomer le fichier fraichement uploadé avec la véritable extension s'il faut.
Ca fait un peu plus de boulot, mais bon, ça évite des bugs lors de l'utilisation de fonctions spécifiques du type de l'image.
++