Envoyer et recuperer une image [Résolu]

Signaler
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
-
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
-
bonjour,

je voudrais savoir comment récuperer directement une image envoyée en php sur le serveur
j'ai chercher une source mais je n'ai pas trouver si vous en avez une je suis preneur...

pour l'instant j'ai récuperer la source :

<?php
/**
 * Script d'upload d'image PHP
 * http://damienalexandre.fr/
 * Novembre 2007 - v1.3
 * http://damienalexandre.fr/Upload-d-image-en-PHP.html
 */
function get_extension($nom) {
    $nom = explode(".", $nom);
    $nb = count($nom);
    return strtolower($nom[$nb-1]);
}
$av='';
// --------------------- Options diverses //



// Extensions images autorisé (pour le moment, que du jpeg)
$extensions_ok = array('jpg', 'jpeg');
// MimeType autorisé/* 1 GIF, 2 JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (Ordre des octets Intel), 8 = TIFF (Ordre des octets Motorola), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF */
$typeimages_ok = array(2);
$photo='0';
$taille_ko = 1024; // Taille en kilo octect (ko)
$taille_max = $taille_ko*1024; // En octects
$dest_dossier = 'images/'; // Creez ce dossier et chmoodez le !
//print_r($_FILES['photo']);
    if(isset($_FILES['photo'])) // Formulaire envoyé
    {
        // Les erreurs que PHP renvoi
        if($_FILES['photo']['error'] !== "0") {
                switch ($_FILES['photo']['error']) {
                case 1:
                    $erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
                    break;
                case 2:
                    $erreurs[] = "Votre image doit faire moins de $taille_ko Ko !";
                    break;
                case 3:
                    $erreurs[] = "L'image n'a été que partiellement téléchargé.";
                    break;
                case 4:
                    $erreurs[] = "Aucun fichier n'a été téléchargé.";
                    break; // Pas de 5, ne pas demander pourquoi ^^ (voir doc PHP)
                case 6:
                    $erreur[] = "Un dossier temporaire est manquant.";
                    break;
                case 7:
                    $erreurs[] = "Échec de l'écriture du fichier sur le disque.";
                    break;
            }
        }
        // getimagesize arrive à traiter le fichier ?
        if(!$getimagesize = getimagesize($_FILES['photo']['tmp_name'])) {
            $erreurs[] = "Le fichier n'est pas une image valide.";
        }
        // on vérifie le type de l'image
        if( (!in_array( get_extension($_FILES['photo']['name']), $extensions_ok ))
           or (!in_array($getimagesize[2], $typeimages_ok )))
        {
            foreach($extensions_ok as $text) { $extensions_string .= $text.', '; }
            $erreurs[] = 'Veuillez sélectionner un fichier de type '.substr($extensions_string, 0, -2).' !';
        }
        // on vérifie le poids de l'image
        if( file_exists($_FILES['photo']['tmp_name'])
                  and filesize($_FILES['photo']['tmp_name']) > $taille_max)
        {
            $erreurs[] = "Votre fichier doit faire moins de $taille_ko Ko !";
        }



        // copie du fichier si aucune erreur !
        if(!isset($erreurs) or empty($erreurs))
        {
            $dest_fichier = basename($_FILES['photo']['name']);
            $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
            // un chtit regex pour remplacer tous ce qui n'est ni chiffre ni lettre par "_"
            $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
           
            // pour ne pas ecraser un fichier existant
            while(file_exists($dest_dossier . $dest_fichier)) {
                $dest_fichier = rand().$dest_fichier;
            }
           
            // copie du fichier
            if(move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier)) {
                $valid[] = "Image uploadé avec succés (Voir)";
    $av=$dest_dossier.$dest_fichier;
 echo $av;
            } else {
                $erreurs[] = "Impossible d'uploader le fichier.
Veuillez vérifier que le dossier ".$dest_dossier." existe avec un chmod 755 (ou 777).";
            }
        }
    }
 





echo "<form method='POST' action='' enctype='multipart/form-data'>";



if(!empty($erreurs)) {
    echo "";
    foreach($erreurs as $erreur) {
        echo "<li>".$erreur."</li>";
    }
    echo "";
}
if(!empty($valid)) {
    echo "";
    foreach($valid as $text) {
        echo "<li>".$text."</li>";
    }
    echo "";
}



   echo " <fieldset>
    <legend>Envoi d'image</legend>
       
            <label for='photo'>Image : </label>
           
       

       
           
           
       

    </fieldset>
</form>";



?>


elle fonctionne très bien

www.creativs.fr

7 réponses

Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
je suis pas sûr d'avoir tout compris à ta question, ceci dit, pour ma part j'utilise un input en hidden dans lequel je mets via Javascript le nom de la photo, ainsi tu récupères sans autre avec le post le nom de l'image

*****
noisy communication - wherever, be everywhere!
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
<script language='JavaScript'  type='text/javascript'>
function avatar(text) {
 opener.parent.avatarbox.location = text;
 
  opener.document.form2.av.value = ' ';



 }



</script>";




<fieldset>
    <legend>Envoi d'image</legend>
       
            <label for='photo'>Image : </label>
           
       

       
           
             
           
       

    </fieldset>
<table border='1' cellpadding='0'cellspacing='0' bordercolor='#8567DE'>";
  //on affiches la photo
     echo "<tr><td align='center'>
  
   </td></tr>";


en gros ca donne ca merci malik pour la piste
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
15
et comprendre la source, c'est une option que t'as envisagé?

*****
noisy communication - wherever, be everywhere!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

tu veux faire quoi exactement...?
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
merci malik mais j'ai compris cette source elle envoie les fichiers dans un repertoire (upload)...

malalam en fait je voudrais envoyer le nom de la photo mais sans recharger la page principale
vu que c'est pour faire une inscription et que si la personne rempli les champs avant de chargé la photo je ne voudrais pas
qu'elle doive tout retaper... (dedans c'est la

www.creativs.fr
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Je serais tenté de dire comme Malik. Mais tu veux l'envoyer où, le nom de ta photo...?
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
il y a une page inscription qui ouvre une page avatar (page que j'ai mise plus haut) danc je voudrait que la page avatar envoi le chemin de l'image téléchargée (variable $av)
si c'est comme malik je vais voir vers les code javascript... parce que contrairement a ce que dis malik j'essaie de comprendre pour ne plus reposer les memes questions enfin je pensait qu'un forum servait a poser des questions quand on savait pas...

www.creativs.fr