IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] upload d'images et affichage du lien


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut [Upload] upload d'images et affichage du lien
    Bonjour à tous, j'espère que je poste dans la bonne section car il y en a tellement que je sais pas par où commencer.

    Voilà ma question, j'ai trouvé un petit script php pour uploader des images sur un serveur et je voudrais qu'il m'affiche les liens pour l'affichage de l'image uploadée.
    Voici le script d'upload :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <?php
     
    /************************************************************
        Definition des constantes / tableaux et variables
    *************************************************************/
     
    // Constantes
    define('TARGET', 'files/');        // Repertoire cible
    define('MAX_SIZE', 100000);        // Taille max en octets du fichier
    define('WIDTH_MAX', 800);        // Largeur max de l'image en pixels
    define('HEIGHT_MAX', 800);        // Hauteur max de l'image en pixels
     
    // Tableaux de donnees
    $tabExt = array('jpg','gif','png','jpeg');    // Extensions autorisees
    $infosImg = array();
     
    // Variables
    $extension = null;
    $message = null;
     
    /************************************************************
        Creation du repertoire cible si inexistant
    *************************************************************/
    if( !is_dir(TARGET) ) {
        if( !mkdir(TARGET, 0700) ) {
            exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
        }
    }
     
    /************************************************************
        Script d'upload
    *************************************************************/
    if($_POST)
    {
      // On verifie si le champ est rempli
      if( !empty($_FILES['fichier']['name']) )
      {
        // Recuperation de l'extension du fichier
        $extension    = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
     
        // On verifie l'extension du fichier
        if(in_array(strtolower($extension),$tabExt))
        {
            // On recupere les dimensions du fichier
            $infosImg = getimagesize($_FILES['fichier']['tmp_name']);
     
            // On verifie le type de l'image
            if($infosImg[2] >= 1 && $infosImg[2] <= 14)
            {
                // On verifie les dimensions et taille de l'image
                if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE))
                {
                    // Si c'est OK, on teste l'upload
                    if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$_FILES['fichier']['name']))
                    {
                        // Message de reussite
                        $message = 'Upload réussi !';
                    }
                       else
                    {
                        // Sinon on affiche une erreur systeme
                        $message = 'Problème lors de l\'upload !';
                    }
                }
                  else
                {
                    // Sinon erreur sur les dimensions et taille de l'image
                    $message = 'Erreur dans les dimensions de l\'image !';
                }
            }
              else
            {
                // Sinon erreur sur les dimensions et taille de l'image
                $message = 'Le fichier à uploader n\'est pas une image !';
            }
        }
          else
        {
            // Sinon on affiche une erreur pour l'extension
            $message = 'L\'extension du fichier est incorrecte !';
        }
       }
        else
       {
            // Sinon on affiche une erreur pour le champ vide
            $message = 'Veuillez remplir le formulaire svp !';
       }
    }
     
    /************************************************************
        Formulaire XHTML
    *************************************************************/
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <head>
            <title>Upload d'une image sur le serveur !</title>
        </head>
        <body>
            <?php
                if( !empty($message) ) {
                    echo '<p>',"\n";
                    echo "\t\t<strong>", htmlspecialchars($message) ,"</strong>\n";
                    echo "\t</p>\n\n";
                }
            ?>
            <!-- Debut du formulaire -->
            <form enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
                <fieldset>
                    <legend>Formulaire</legend>
                        <p>
                            <label for="fichier_a_uploader" title="Recherchez le fichier à uploader !">Envoyer le fichier :</label>
                            <input type="hidden" name="posted" value="1" />
                            <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" />
                            <input name="fichier" type="file" id="fichier_a_uploader" />
                            <input type="submit" name="submit" value="Uploader" />
                        </p>
                </fieldset>
            </form>
            <!-- Fin du formulaire -->
        </body>
    </html>
    Et voici ce que je voudrais qu'il m'affiche :

    Votre image a été uploadé(e) avec succès

    affichage de l'image

    1) insérer cette image dans un message de forum, copiez et collez le code suivant:
    lien_vers_l_image

    2) Pour partager cette image ou ce fichier avec un amis ou votre famille, donnez leur ce lien:
    lien_vers_l_image

    3) Pour insérer l'image en code html dans une page web ou autre, copiez le lien suivant et collez le dans votre page web:
    <a href="http://www.domaine.com" target="_blank"><img alt="Image Hosté par moi / Héberger vos fichiers et images gratuitement jusqu'a 50 Mo !" src="le_lien_vers_l_image" /></a>

    Un peu à la manière d'imageshack
    Est-ce que c'est possible ? si oui comment faire car en php je suis assez à la ramasse...
    merci d'avance pour votre aide.

  2. #2
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    Bon voilà pout faire simple je voudrais qu'un fois l'image uploadée il m'affiche le lien vers l'image :
    http://www.domaine.com/uploads/mon_fichier_image.jpg

    comment faire ?

  3. #3
    Membre actif
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut Upload image + lien
    Je ne sais pas si j'ai tout bien compris mais enfin bon y'a une de tes variables qui contient l'emplacement de ton image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TARGET.$_FILES['fichier']['name']
    ensuite t'as juste à faire un lien vers ce chemin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo '<a href="http://www.domaine.com/"'.TARGET.$_FILES['fichier']['name'].' target="_blank"><img alt="Image Hosté par moi / Héberger vos fichiers et images gratuitement jusqu\'a 50 Mo !" src="le_lien_vers_l_image" /></a>';
    ?>
    et voilà, vendu

  4. #4
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    merci pour ta réponse, ça marche bien mais voilà lorsque le fichier est uploadé, il me met un chmod de 600 sur le fichier image et le serveur ne peu pas le lire, si je le met en 644 alors ça va.
    Mais comment faire pour qu'on est pas à changer le chmod ? qu'il m'upload le fichier avec un chmod de 644 ?

    Merci

  5. #5
    Membre actif
    Avatar de maxime.ohayon
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut
    Désolé mais la je ne sais pas te répondre, je trouve sa bizarre que le chmod de ton fichier soit 600 automatiquement, regarde du coté du chmod du dossier parent sinon du coté de ton hébergeur, il pourront surement mieux te répondre

  6. #6
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    merci pour tout

  7. #7
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    j'ai trouvé pour le problème du chmod 600:
    il faut remplacer la fonction move_uploaded_file par @copy et le tour est joué.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/03/2007, 23h16
  2. [Upload] Upload FTP avec image > 1Mo
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2007, 14h09
  3. [Upload] upload d'une image
    Par emna_icn dans le forum Langage
    Réponses: 11
    Dernier message: 05/05/2006, 00h14
  4. [Upload] Upload d'une image
    Par Seth77 dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2006, 12h00
  5. [Upload] upload de fichier images
    Par omlip dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2006, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo