Probléme upload php
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai mon script qui ne fonctionne pas
En effet, peut importe le type d'image que je met, il m'affiche l'erreur : "Le fichier nest pas une image". Alors qu'en réalité si.
Si vous comprenez, merci de m'aidez.
--
Lucas
J'ai mon script qui ne fonctionne pas
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$id = $_GET['id'];
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( is_uploaded_file($tmp_file) )
{
$type_file = $_FILES['fichier']['type'];
if( strstr($type_file, 'jpg') && strstr($type_file, 'jpeg') && strstr($type_file, 'bmp') && strstr($type_file, 'gif') )
{
if($_FILES['image']['size'] < 30000)
{
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
$extension_image = strrchr(strtolower($name_file), '.');
$name_filefin = $id.$extension_image;
if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) )
{
echo "Le fichier à bien été uploader";
}else{echo "Impossible de copier le fichier"; }
}else{echo "Votre image est supérieure à la taille maximale de 30000 octets";}
}else{echo "Le fichier nest pas une image"; }
}else{echo "Le fichier est introuvable"; }
}else{echo "Merci de remplir le formulaire";}
?>
En effet, peut importe le type d'image que je met, il m'affiche l'erreur : "Le fichier nest pas une image". Alors qu'en réalité si.
Si vous comprenez, merci de m'aidez.
--
Lucas
2 réponses
-
C'est l'opérateur logique qui n'est pas bon c'est OU à la place de ET ligne 10 :
<?php if( isset($_POST['upload']) ) // si formulaire soumis { $id = $_GET['id']; $content_dir = 'upload/'; // dossier où sera déplacé le fichier $tmp_file = $_FILES['fichier']['tmp_name']; if( is_uploaded_file($tmp_file) ) { $type_file = $_FILES['fichier']['type']; if( strstr($type_file, 'jpg') || strstr($type_file, 'jpeg') || strstr($type_file, 'bmp') || strstr($type_file, 'gif') ) { if($_FILES['image']['size'] < 30000) { // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']; $extension_image = strrchr(strtolower($name_file), '.'); $name_filefin = $id.$extension_image; if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) ) { echo "Le fichier à bien été uploader"; }else{echo "Impossible de copier le fichier"; } }else{echo "Votre image est supérieure à la taille maximale de 30000 octets";} }else{echo "Le fichier nest pas une image"; } }else{echo "Le fichier est introuvable"; } }else{echo "Merci de remplir le formulaire";} ?>
Car tu ne veux pas tout les types d'images. -
Merci Benvii.
Aprés avoir posté mon message, j'ai continué mes recherches et du coup j'ai fait :<?php if( isset($_POST['upload']) ) // si formulaire soumis { $id = $_GET['id']; $content_dir = 'upload/'; // dossier où sera déplacé le fichier $tmp_file = $_FILES['fichier']['tmp_name']; if( is_uploaded_file($tmp_file) ) { $type_file = $_FILES['fichier']['type']; $allowed_types = array("image/bmp", "image/gif", "image/jpeg", "image/jpg",); if(in_array($type_file, $allowed_types)) { $size = $_FILES['fichier']['size']; if($size < 30000) { // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']; $extension_image = strrchr(strtolower($name_file), '.'); $name_filefin = $id.$extension_image; if( move_uploaded_file($tmp_file, $content_dir . $name_filefin) ) { echo "Le fichier à bien été uploader"; }else{echo "Impossible de copier le fichier"; } }else{echo "Votre image est supérieure à la taille maximale de 30000 octets";} }else{echo "Le fichier nest pas une image"; } }else{echo "Le fichier est introuvable"; } }else{echo "Merci de remplir le formulaire";} ?>
Sa marche aussi.
Merci quand même