Upload image et extensions
Résolu/Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
Modifié par Sinistrus le 16/09/2015 à 13:22
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 16 sept. 2015 à 15:20
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 16 sept. 2015 à 15:20
A voir également:
- Upload image et extensions
- Image iso - Guide
- Acronis true image - Télécharger - Sauvegarde
- Image iso windows 10 - Guide
- Faststone image viewer - Télécharger - Visionnage & Diaporama
- Comment agrandir une image - Guide
3 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
16 sept. 2015 à 14:29
16 sept. 2015 à 14:29
Salut,
Ta vérification semble correcte. As tu vérifier la valeur de la variable $Extension lors de l'upload d'un fichier ?
Ta vérification semble correcte. As tu vérifier la valeur de la variable $Extension lors de l'upload d'un fichier ?
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
16 sept. 2015 à 15:08
16 sept. 2015 à 15:08
Merci Pitet de t'intéresser au poste.
Lorsque je fais un echo à
J'ai changé le code de ma page pour essayer de mieux organiser, mais rencontre toujours le même soucis :
Lorsque je fais un echo à
$Extension = pathinfo($_FILES['Fr_Image']['name'], PATHINFO_EXTENSION);il me revoit
txtou
pngmais garde l'erreur que le fichier soit bon ou pas.
J'ai changé le code de ma page pour essayer de mieux organiser, mais rencontre toujours le même soucis :
if (isset($_POST["action"]) && $_POST["action"] == "send"){ $Ext_Valide = ""; $Extension = ""; $Fr_Marque = ""; $Fr_Lien = ""; $Remplace = ""; $Texte = ""; // Récupération des valeurs $_FILES['Fr_Image']['name']; $_FILES['Fr_Image']['type']; $_FILES['Fr_Image']['size']; $_FILES['Fr_Image']['tmp_name']; $_FILES['Fr_Image']['error']; $Fr_Marque = $_POST["Fr_Marque"]; $Fr_Marque = stripslashes($Fr_Marque); $Fr_Pays_CI = isset($_POST["Fr_Pays_CI"]) ? "1" : "0"; $Fr_Pays_CI = stripslashes($Fr_Pays_CI); $Fr_Pays_SN = isset($_POST["Fr_Pays_SN"]) ? "1" : "0"; $Fr_Pays_SN = stripslashes($Fr_Pays_SN); // Dossier racine $PathImage = '../../../images/logos/'; // Créer dossier si existe pas if (!is_dir($PathImage)) {mkdir($PathImage, 0705, true);} // 1Mo $MaxSize = 1000000; // Extension valides $Ext_Valide = array('png', 'PNG'); // Récupère l'extension du fichier uploadé $Extension = pathinfo($_FILES['Fr_Image']['name'], PATHINFO_EXTENSION); // Convertis $Marque en majuscule $Fr_Marque = mb_strtoupper($Fr_Marque,'UTF-8'); $Texte = $Fr_Marque; // Remplace les caractère accentués $search = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ'); $replace = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y'); $TexteValid = str_replace($search, $replace, $Texte); // Remplace les caractères spéciaux par des '-' $Remplace = preg_replace('/([^.A-Za-z0-9]+)/i', '-', $TexteValid); // Convertis $Remplace en minuscule $Fr_Lien = strtolower($Remplace); // Convertis $Remplace en minuscule et ajoute l'extension $Fr_Image = strtolower($Remplace).$Extension; echo 'Ext_Valide: '.$Ext_Valide.'<br />'; echo 'Extension: '.$Extension.'<br />'; echo 'in_array: '.in_array($Ext_Valide); if($Extension <> in_array($Ext_Valide)) {$_GET["msg"] = urlencode("L'extension de l'image est incorrecte. Veuillez choisir un fichier de type .png");}else{ if($_FILES['Fr_Image']['size'] > $MaxSize) {$_GET["msg"] = urlencode("Le fichier est trop volumineux.");}else{ if($_FILES["Fr_Image"]["error"] != 0) {$_GET["msg"] = urlencode("Veuillez renseigner le champ « <strong>Image</strong> »");}else{ if(empty($Fr_Marque)) {$_GET["msg"] = urlencode("Veuillez renseigner le champ « <strong>Marque</strong> »");}else{ if(empty($Fr_Lien)) {$_GET["msg"] = urlencode("Veuillez renseigner le champ « <strong>Lien</strong> »");}else{ // Enregistrement dans la base $req_fr = $pdo->prepare ("INSERT INTO tb_marques (Image, Marque, Lien, CI, SN) VALUES (:Fr_Image, :Fr_Marque, :Fr_Lien, :Fr_Pays_CI, :Fr_Pays_SN)"); $req_fr ->execute(array( "Fr_Image" => $Fr_Image, "Fr_Marque" => $Fr_Marque, "Fr_Lien" => $Fr_Lien.'.php', "Fr_Pays_CI" => $Fr_Pays_CI, "Fr_Pays_SN" => $Fr_Pays_SN )); // Upload de l'image sur le serveur $Resultat = move_uploaded_file($_FILES['Fr_Image']['tmp_name'], $PathImage.$Fr_Image); // Message de confirmation if($req_fr){echo('<div class="Message">L\'enregistrement a été ajouté avec succès.</div>'.$Renvois_0); }else{ // Message d'erreur echo('<div class="Erreur">Une erreur est survenue lors de l\'enregistrement.</div>'.$Renvois_0);}exit();} }}} }} // Mon message d'erreur if (!empty($_GET["msg"])){$msg = urldecode($_GET["msg"]); $msg = stripslashes($msg); echo('<div class="Erreur">'.$msg.'</div>'.$Renvois_0);} $Renvois_1 = '<script type="text/javascript">window.setTimeout("location=(\'index.php\');",5000)</script>'; $Renvois_2 = '<script type="text/javascript">window.setTimeout("location=(\'ajouter.php\');",5000)</script>';
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
16 sept. 2015 à 15:20
16 sept. 2015 à 15:20
J'ai trouvé ^^
Il suffisait de remplacer :
par :
Donc mettre les deux variables dans le
Merci Pitet pour ton aide, tu vois j'évolue :p
Il suffisait de remplacer :
if($Extension <> in_array($Ext_Valide)) {$_GET["msg"] = urlencode("L'extension de l'image est incorrecte. Veuillez choisir un fichier de type .png");}else{
par :
if(!in_array($Extension, $Ext_Valide)) {$_GET["msg"] = urlencode("L'extension de l'image est incorrecte. Veuillez choisir un fichier de type .png");}else{
Donc mettre les deux variables dans le
in_arrayo'
Merci Pitet pour ton aide, tu vois j'évolue :p