djibidl
Messages postés37Date d'inscriptionvendredi 5 février 2010StatutMembreDernière intervention16 mai 2013
-
26 mai 2011 à 12:06
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 2014
-
29 mai 2011 à 21:13
Bonjour,
Je réalise un tp dans lequel je dois manipuler des images jpeg et gif. La démarche pour l'insertion marche b1. Elle est fait avec un formulaire comme suite:
. à la récupération après la vérification de la taille et du type de l'image, l'insertion marche b1.
Mais lorsque j'essaye d'afficher l'image, j'aperçois une série de caractère incompréhensible au lieu de mon image.
Normalement lors de l'insertion, si on recupère le contenu de l'image avec
djibidl
Messages postés37Date d'inscriptionvendredi 5 février 2010StatutMembreDernière intervention16 mai 2013 29 mai 2011 à 12:36
Finalement j'ai adopté la technique de stockage de l'image dans un répertoire et enregistrement de son nom dans la base de données.Là aussi, l'affichage marche pour les images dont le nom est stocké en un seul bloque c'est à dire sans espace. Mais dès qu'on inclus une espace dans le nom du genre (ma photo), l'image ne s'affiche pas.
Qu'est ce qui fait ça??
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 29 mai 2011 à 21:13
Les serveurs et notamment Apache ont horreur des espaces (et accents) dans les noms de fichiers. En toute hypothèse, la meilleure solution consiste à renommer les fichiers cela permet d'éviter les colisions en cas de doublons.
Une méthode consiste à faire appel à l'heure avec, à titre d'exemple
$tdy=gmdate('YmdHis');
$sfx=strtolower(strrchr($_FILES['leFichier']['name'],'.'));
// Test sur les extensions autorisées
$fch="img_$tdz$sfx";
if (move_uploaded_file($_FILES['leFichier']['tmp_name'],"dir/".$fch) {
// Tout va bien
}
Dans certains cas specifiques (*), il convient d'aller aux millisecondes ou de compléter avec un élément aléatoire type md5().
(*) Cas d'un enseignant, dont les élèves d'un atelier informatique enregistraient leurs travaux tous en même temps en fin de la séance.