[PHP] Souci d'extension de fichiers upload
Résolu/Fermé
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
-
10 août 2012 à 01:46
Utilisateur anonyme - 11 août 2012 à 20:03
Utilisateur anonyme - 11 août 2012 à 20:03
A voir également:
- [PHP] Souci d'extension de fichiers upload
- Extension dat - Guide
- Changer extension fichier - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Extension .bin - Guide
- Extension 7z - Guide
14 réponses
Utilisateur anonyme
11 août 2012 à 15:11
11 août 2012 à 15:11
Ce problème apparaît que depuis que j'ai mis ton code à la place de l'autre
Pourtant tu te plaignais déjà de ça dès ton premier message... Faudrait savoir.
Ton code qui affiche l'image est différent de celui qui la charge. D'où vient la variable $extension dans donc code qui affiche l'image, et qui ne reconnaît pas les extensions ?
Pourtant tu te plaignais déjà de ça dès ton premier message... Faudrait savoir.
Ton code qui affiche l'image est différent de celui qui la charge. D'où vient la variable $extension dans donc code qui affiche l'image, et qui ne reconnaît pas les extensions ?
lili34500
Messages postés
178
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
17 août 2012
16
10 août 2012 à 07:49
10 août 2012 à 07:49
Essayer de faire ton traitement sans ajouter ton $extension. Puis ajoute le lors de l'upload ... Tu peut toujours essayer ca
Utilisateur anonyme
Modifié par le père. le 10/08/2012 à 09:20
Modifié par le père. le 10/08/2012 à 09:20
Bonjour
Ta méthode pour tronquer le nom de fichier à 15 caractères me semble bien légère, peut-on voir le code qui initialise les variables $extension et $nomFichier ?
il met par exemple pour une image en jpg que c'est un format inconnu.
Si tu récupères en ftp le fichier que tu viens de télécharger, est-il reconnu par ton PC ? Compare-le avec celui que tu avais téléchargé pour voir s'il a été mal téléchargé ou s'il est mal analysé à la restitution.
Ta méthode pour tronquer le nom de fichier à 15 caractères me semble bien légère, peut-on voir le code qui initialise les variables $extension et $nomFichier ?
il met par exemple pour une image en jpg que c'est un format inconnu.
Si tu récupères en ftp le fichier que tu viens de télécharger, est-il reconnu par ton PC ? Compare-le avec celui que tu avais téléchargé pour voir s'il a été mal téléchargé ou s'il est mal analysé à la restitution.
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
10 août 2012 à 22:59
10 août 2012 à 22:59
Alors j'ai retirer cette fonction:
Je n'ai maintenant que ça:
Code qui initialise la variable $extension:
Code qui initialise la variable $nomFichier:
Pour le moment tout fonctionne mis a part les fichiers renommés ou non renommé à moins de 15 caractères à l'origine, ces fichiers auront une double extension c'est à dire: exemple (20120810221211_aeertt.jpg.jpg)
Seriez vous d'où ça pourrait venir ?
Merci d'avance.
$extension=substr($extension,4) ;
Je n'ai maintenant que ça:
$nomFichier =substr($nomFichier, 0, 15).strtolower($extension); if (file_exists("up/$nomFichier" )) { $rand = date("YmdHis"); $nomFichier = $rand."_".$nomFichier; } // Ensuite, on copie le fichier uploadé ou bon nous semble. $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier); if($uploadOk){
Code qui initialise la variable $extension:
$extension = strrchr($nomFichier, ".");
Code qui initialise la variable $nomFichier:
$nomFichier = $_FILES["file"]["name"] ;
Pour le moment tout fonctionne mis a part les fichiers renommés ou non renommé à moins de 15 caractères à l'origine, ces fichiers auront une double extension c'est à dire: exemple (20120810221211_aeertt.jpg.jpg)
Seriez vous d'où ça pourrait venir ?
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
10 août 2012 à 23:14
10 août 2012 à 23:14
Si le nom de fichier fait moins de 15 caractères, tu ne le raccourcis pas. Donc il garde son extension. Si tu ajoutes encore l'extension, tu as deux extensions, c'est normal.
Pour limiter la longueur du nom de fichier, tu peux faire
Pour limiter la longueur du nom de fichier, tu peux faire
$nomFichier = $_FILES["file"]["name"] ; $tbl=explode('.',$nomfichier); $extension=array_pop($tbl) $nomFichier =substr(implode('.',$tbl),0,15).'.'.$extension;
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
11 août 2012 à 02:21
11 août 2012 à 02:21
Au niveau de la double extension le problème est réglé je te remercie.
Mais maintenant après l'upload il y a un souci le script ne détecte pas l'extension il met que c'est inconnu, alors que sur le ftp et sur mon pc le fichier est bon, on peut le lire et l'extension est présente (.jpg).
Voici le code ou je pense que le problème se pose:
PS: Ce problème apparaît que depuis que j'ai mis ton code à la place de l'autre le père.
Merci d'avance
Mais maintenant après l'upload il y a un souci le script ne détecte pas l'extension il met que c'est inconnu, alors que sur le ftp et sur mon pc le fichier est bon, on peut le lire et l'extension est présente (.jpg).
Voici le code ou je pense que le problème se pose:
$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier); if($uploadOk){ switch ($extension) { case ".jpeg": echo "<IMG SRC='up/$nomFichier'>";break; case ".jpg": echo "<IMG SRC='up/$nomFichier'>";break;
PS: Ce problème apparaît que depuis que j'ai mis ton code à la place de l'autre le père.
Merci d'avance
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
11 août 2012 à 16:02
11 août 2012 à 16:02
Effectivement oui j'avais oublier ça. Autant pour moi.
Je prense que c'est celle ci: $extension = strrchr($nomFichier, ".");
Elle placé en dessous cette variable: $nomFichier = $_FILES["file"]["name"] ;
Merci d'avance
Je prense que c'est celle ci: $extension = strrchr($nomFichier, ".");
Elle placé en dessous cette variable: $nomFichier = $_FILES["file"]["name"] ;
Merci d'avance
Utilisateur anonyme
11 août 2012 à 18:43
11 août 2012 à 18:43
Excuse-moi, je n'ai pas posé la bonne question Pour comprendre pourquoi ça n'affiche pas, montre tout le script de la partie qui te dit que l'extension n'est pas reconnue (sans tes mots de passe s'il y en a dedans)
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
11 août 2012 à 18:49
11 août 2012 à 18:49
La voici
if($uploadOk){ echo "Upload ok<br><br>"; echo "Name : $nomFichier<br>"; echo "Size : $poidsFichierK Ko<br>"; echo "URL du Fichier : http://*****/$nomFichier<br><br>"; echo "Aperçu:<br><br>"; switch ($extension) { case ".jpeg": echo "<IMG SRC='up/$nomFichier'>";break; case ".bmp": echo "<IMG SRC='$nomFichier'>";break; case ".gif": echo "<IMG SRC='$nomFichier'>";break; case ".png": echo "<IMG SRC='$nomFichier'>";break; case ".jpg": echo "<IMG SRC='up/$nomFichier'>";break; case ".rar": echo "<IMG SRC='error/archive.gif'>";break; case ".ace": echo "<IMG SRC='error/archive.gif'>";break; case ".zip": echo "<IMG SRC='http://center-up.com/inc/error/archive.gif'>";break; case ".php": echo "<IMG SRC='error/web.gif'>";break; case ".htm": echo "<IMG SRC='error/web.gif'>";break; case ".html": echo "<IMG SRC='error/web.gif'>";break; case ".php3": echo "<IMG SRC='error/web.gif'>";break; case ".mp3": echo "<IMG SRC='error/son.gif'><bgsound src='$nomFichier'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break; case ".wav": echo "<IMG SRC='error/son.gif'><bgsound src='$nomFichier'><br>Si vous utilisez internet explorer ,vous pourrez entendre votre son.";break; default: echo "<IMG SRC='error/inconnu.gif'>"; } echo "<br><br>";
Utilisateur anonyme
11 août 2012 à 19:22
11 août 2012 à 19:22
Après
ajoute
pour t'assurer de la vraie valeur. Si tu as gardé mon code, $extension ne contient pas le point. (gif au lieu de .gif)
if($uploadOk){
ajoute
echo $extension;
pour t'assurer de la vraie valeur. Si tu as gardé mon code, $extension ne contient pas le point. (gif au lieu de .gif)
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
11 août 2012 à 19:33
11 août 2012 à 19:33
J'ai modifier j'ai ça qui apparaît maintenant: jpgUpload ok
Mais le fichier est toujours reconnu comme inconnu.
Merci d'avance
Mais le fichier est toujours reconnu comme inconnu.
Merci d'avance
Utilisateur anonyme
11 août 2012 à 19:49
11 août 2012 à 19:49
Tu as la réponse sous les yeux et tu ne la vois pas ?
$extension contient 'jpg' (sans le point) et ton switch teste '.jpg' (avec le point)
Tu as le choix entre ajouter le . au début de $extension, ou modifier toutes les variantes dans le switch pour remplacer ".gif", ".png", etc... par "gif", "png", etc...
$extension contient 'jpg' (sans le point) et ton switch teste '.jpg' (avec le point)
Tu as le choix entre ajouter le . au début de $extension, ou modifier toutes les variantes dans le switch pour remplacer ".gif", ".png", etc... par "gif", "png", etc...
florianlp
Messages postés
72
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
21 octobre 2015
11 août 2012 à 19:55
11 août 2012 à 19:55
Effectivement j'ai retirer les points et sa fonctionne merci à vous !