Upload d'image

Eléphant du PHP | 424 Messages

15 mai 2007, 23:52

Bonjour à tous !

Voila j'ai un probléme avec un script d'upload d'image.
Voici le script :
<?php 
//---------------------------- 
//  DEFINITION DES VARIABLES  
//---------------------------- 

$target     = 'image/';  // Repertoire cible 
$extension  = 'jpg';      // Extension du fichier sans le . 
$max_size   = 100000;     // Taille max en octets du fichier 
$width_max  = 100;        // Largeur max de l'image en pixels 
$height_max = 100;        // Hauteur max de l'image en pixels 

//--------------------------------------------- 
//  DEFINITION DES VARIABLES LIEES AU FICHIER 
//--------------------------------------------- 

$nom_file   = $_FILES['fichier']['name']; 
$taille     = $_FILES['fichier']['size']; 
$tmp        = $_FILES['fichier']['tmp_name']; 

//---------------------- 
//  SCRIPT D'UPLOAD 
//---------------------- 
?> 
<html> 
    <head> 
        <title>Upload d'une image sur le serveur !</title> 
    </head> 
    <body> 
<?php 
if(!empty($_POST['posted'])) { 
    // On vérifie si le champ est rempli 
    if(!empty($_FILES['fichier']['name'])) { 
        // On vérifie l'extension du fichier 
        if(substr($nom_file, -3) == $extension) { 
            // On récupère les dimensions du fichier 
            $infos_img = getimagesize($_FILES['fichier']['tmp_name']); 
             
            // On vérifie les dimensions et taille de l'image 
            if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) { 
                // Si c'est OK, on teste l'upload 
                if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) { 
                    // Si upload OK alors on affiche le message de réussite 
                    echo '<b>Image uploadée avec succès !</b>'; 
                    echo '<hr />'; 
                    echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />'; 
                    echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />'; 
                    echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; 
                    echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; 
                    echo '<hr />'; 
                    echo '<br /><br />'; 
                } else { 
                    // Sinon on affiche une erreur système 
                    echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />'; 
                } 
            } else { 
                // Sinon on affiche une erreur pour les dimensions et taille de l'image 
                echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />'; 
            } 
        } else { 
            // Sinon on affiche une erreur pour l'extension 
            echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />'; 
        } 
    } else { 
        // Sinon on affiche une erreur pour le champ vide 
        echo '<b>Le champ du formulaire est vide !</b><br /><br />'; 
    } 
} 
?>       
 <form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST"> 
            <b>Envoyer le fichier :</b><br /><br /> 
            <input type="hidden" name="posted" value="1" /> 
            <input name="fichier" type="file" /> 
            <input type="submit" value="Uploader" /> 
        </form> 
Le message "Image uploadée avec succès !" apparaît mais pas d'images uploadé sur mon serveur... voyez vous une erreur ?

Merci pour votre aide
Youpi Youpi Yo !

ViPHP
ViPHP | 5924 Messages

15 mai 2007, 23:59

Essaye de bouger le fichier vers un emplacement fixe dans le dossier courant, par exemple './image.jpg'. Ca permettra de cerner le problème.

Eléphant du PHP | 424 Messages

16 mai 2007, 10:54

Heuu..... effectivement j'ai réglé le probleme ! ca fonctionne maintenant !

merci je reviens vers vous plus tard car je pense avoir un probleme autre... ^^ merci en tous les cas
Youpi Youpi Yo !

Eléphant du PHP | 424 Messages

16 mai 2007, 11:13

Je reviens donc vers vous car une fois l'image UPLOADER impossible d'y avoir accés via le lien de celle ci ....

Savez vous pourquoi ?

merci d'avance
Youpi Youpi Yo !

Mammouth du PHP | 737 Messages

16 mai 2007, 12:01

Salut,

C'est à dire ? Quelle est la nature de ton lien ? Quel est le nom de ton fichier ?
Ton image est-elle présente ?

Mega :)

Mammouth du PHP | 693 Messages

16 mai 2007, 14:13

Fais attention aux caractères spéciaux, comme les espaces ou les apostrohes. Il faut les convertire au code HTML.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 mai 2007, 14:55

Faut surtout les dégager des noms de fichiers oui ;) Virer tout ce qui est accents et caractères spéciaux autre que "-" et "_" :)

Pis vérifie également que le fichier est bien accessible en lecture :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 424 Messages

16 mai 2007, 21:09

Effctivement j'ai un probleme !

en effectuant un clic droit sur le fichier dans le FTP le CHMOD à la valeur : 600

Comment faire en sorte que la valeur soit de 777 automatiquement.
Car quand je modifie manuellement cette valeur dans le FTP j'y ai accés...

merci pour votre aide
Youpi Youpi Yo !

ViPHP
ViPHP | 5924 Messages

16 mai 2007, 21:32

Au hasard la fonction chmod()... :-/

Eléphant du PHP | 424 Messages

16 mai 2007, 22:17

Le hasard fait bien les choses :D

Merci ca fonctionne impeccable
Youpi Youpi Yo !