Envoyer et recuperer une image

Résolu
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 - 31 déc. 2007 à 16:50
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 - 2 janv. 2008 à 17:17
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

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
31 déc. 2007 à 17:26
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!
3
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
2 janv. 2008 à 17:17
<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
3
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
31 déc. 2007 à 17:18
et comprendre la source, c'est une option que t'as envisagé?

*****
noisy communication - wherever, be everywhere!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 déc. 2007 à 17:18
Hello,

tu veux faire quoi exactement...?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
31 déc. 2007 à 17:24
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 déc. 2007 à 17:31
Je serais tenté de dire comme Malik. Mais tu veux l'envoyer où, le nom de ta photo...?
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
31 déc. 2007 à 17:36
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
0
Rejoignez-nous