Pb vérification type de fichier avant upload
Résolu
Authentiks
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Authentiks Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Authentiks Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Salut,
J'ai créer une application PHP qui permet de charger un fichier que j'utilise pour extraire les infos et les mettre dans une BDD Mysql. Le problème c'est je que je voudrais qu'il me charge que des fichier de type .xls ou .csv
Je vous mets mon code ci-dessous:
[...]
Donc quand je fais un echo de $extension il me marque bien .gif ou .xls mais il ne rentre jamais dans mon else if. (Et il n'est pas rentré dans le premier if... :P, jpréfère prévenir)
Merci de votre aide
J'ai créer une application PHP qui permet de charger un fichier que j'utilise pour extraire les infos et les mettre dans une BDD Mysql. Le problème c'est je que je voudrais qu'il me charge que des fichier de type .xls ou .csv
Je vous mets mon code ci-dessous:
$the_file_name = $_FILES['the_file']['name']; $extension = substr ($the_file_name,-4,4); //récupère l'extension du fichier.
[...]
else if (!$extension== ".csv" || !$extension== ".xls"){ echo"<tr><td align='left'><br/><strong><font color='red'>ATTENTION le format du fichier chargé n'est pas bon (ni un .xls, ni un .csv)!!</font></strong>"; echo "<br/><form enctype='multipart/form-data' action='" . $_SERVER['PHP_SELF'] . "' method='post'>\n" . "<input type='hidden' name='action' value='upload' />\n" . "Upload a file: <input type='file' name='the_file' size='35' /><br />\n" . "<div align='center'><input type='submit' value='Upload' /><div/>\n" . "</form>\n\n"; echo "<br/></td></tr>\n";
Donc quand je fais un echo de $extension il me marque bien .gif ou .xls mais il ne rentre jamais dans mon else if. (Et il n'est pas rentré dans le premier if... :P, jpréfère prévenir)
Merci de votre aide
A voir également:
- Pb vérification type de fichier avant upload
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
6 réponses
voila ton probleme :
supposons que l'upload du fichier fonctinne correctement on aura plus besoin de la partie "if" le programme passe à "else if" et la si le fichier est ".pdf" par exemple la conditionest verifier il entre jusqu ici c bon ton programme foctionne correctement....
maitenant si le fichier est un ".csv" la prmeiere partie($extension!= ".csv") n'est pas verfier normalement il entre pas sauf que la 2eme partie ($extension!= ".xls") est verifiée et t a un "ou" (||)entre les deux:il entre donc....meme probleme avec un fichier".xls"..........
Solution : remplace le "ou" (||) par un "et" (&&) :pour afficher le message "extention incorrecte" le fichier doit etre different de ".csv" && different de ".xls"
Bonne chance
supposons que l'upload du fichier fonctinne correctement on aura plus besoin de la partie "if" le programme passe à "else if" et la si le fichier est ".pdf" par exemple la conditionest verifier il entre jusqu ici c bon ton programme foctionne correctement....
maitenant si le fichier est un ".csv" la prmeiere partie($extension!= ".csv") n'est pas verfier normalement il entre pas sauf que la 2eme partie ($extension!= ".xls") est verifiée et t a un "ou" (||)entre les deux:il entre donc....meme probleme avec un fichier".xls"..........
Solution : remplace le "ou" (||) par un "et" (&&) :pour afficher le message "extention incorrecte" le fichier doit etre different de ".csv" && different de ".xls"
Bonne chance
Pour te donner une reponse complete tu dois nous envoyé le code complet sur de la partie "if"...
Et puis Est tu sur que ce syntax est juste:
!$extension== ".csv" ----------> le "! " avant une variable qui contient du text ca veut dire quoi?
Autre chose ,si dans la premiere partie de ta structure conditionnelle "if" tu a traité le cas
($extension== ".csv" || $extension== ".xls")
alors un simple " else" suffira pour traiter le cas ou l'extention du fichier n'est pas bonne au lieu d'un "else if". Si ce n'est pas le cas explique ton traitement et envoi la premiere partie du code on pourra peut etre t'aider.
Remarque: a mon avis ton probleme est un probleme de controle de saisie , tu n'est pas obligé d'envoye les donnes vers le serveur puis de les verifier avec php pour faire le traitement. N'oubli pas que php fonctionne du cote serveur......un simple script de controle de saisie en java scrit suffit pour filtrer le type de fichier accepter par ton formulaire
Bonne chance
Et puis Est tu sur que ce syntax est juste:
!$extension== ".csv" ----------> le "! " avant une variable qui contient du text ca veut dire quoi?
Autre chose ,si dans la premiere partie de ta structure conditionnelle "if" tu a traité le cas
($extension== ".csv" || $extension== ".xls")
alors un simple " else" suffira pour traiter le cas ou l'extention du fichier n'est pas bonne au lieu d'un "else if". Si ce n'est pas le cas explique ton traitement et envoi la premiere partie du code on pourra peut etre t'aider.
Remarque: a mon avis ton probleme est un probleme de controle de saisie , tu n'est pas obligé d'envoye les donnes vers le serveur puis de les verifier avec php pour faire le traitement. N'oubli pas que php fonctionne du cote serveur......un simple script de controle de saisie en java scrit suffit pour filtrer le type de fichier accepter par ton formulaire
Bonne chance
Je t'envoies ma partie "if"...Sinon j'ai changé le test d'inegalité, je sais pas pourquoi j'avais mis ça...
$the_file_name = $_FILES['the_file']['name']; $the_file = $_FILES['the_file']['tmp_name']; $the_full_file_path = $the_path."/".$the_file_name; $extension = substr ($the_file_name,-4,4); //récupère l'extension du fichier. Exemple ".csv" echo $extension; //Si l'upload du fichier n'a pas fonctionné on réaffiche la barre permettant d'importer un fichier ainsi qu'un message d'erreur if (!@move_uploaded_file($the_file, $the_full_file_path)) { $the_file_name = "ATTENTION Base de Données VIDE"; echo"<tr><td align='left'><br/>Nom du fichier faisant référence :".$the_file_name.""; echo "<br/><form enctype='multipart/form-data' action='" . $_SERVER['PHP_SELF'] . "' method='post'>\n" . "<input type='hidden' name='action' value='upload' />\n" . "Upload a file: <input type='file' name='the_file' size='35' /><br />\n" . "<div align='center'><input type='submit' value='Upload' /><div/>\n" . "</form>\n\n"; echo "<strong><font color='red'>Erreur:</font> Vérifiez vos permissions et le chemin du répértoire de téléchargement (upload) </strong><br/><br/></td></tr>\n"; } //Si le fichier n'est pas au bon format... else if ($extension!= ".csv" || $extension!= ".xls"){ echo"<tr><td align='left'><br/><strong><font color='red'>ATTENTION le format du fichier chargé n'est pas bon (ni un .xls, ni un .csv)!!</font></strong>"; echo "<br/><form enctype='multipart/form-data' action='" . $_SERVER['PHP_SELF'] . "' method='post'>\n" . "<input type='hidden' name='action' value='upload' />\n" . "Upload a file: <input type='file' name='the_file' size='35' /><br />\n" . "<div align='center'><input type='submit' value='Upload' /><div/>\n" . "</form>\n\n"; echo "<br/></td></tr>\n"; } //Si l'upload a fonctionné avec le bon type de fichier on le précise et on indique le nouveau fichier de référence. else [...On traite ici le bon doc... donc pas de pb normalement ici]
Juste une précision en plus:
Avec ce code le programme rentre dans la boucle else if tout le temps meme si le fichier est un .csv ou .xls
Merci de votre aide
Avec ce code le programme rentre dans la boucle else if tout le temps meme si le fichier est un .csv ou .xls
Merci de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question