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] Php : script d'Upload vers mon site : Big Probleme


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 68
    Points : 56
    Points
    56
    Par défaut [Upload] Php : script d'Upload vers mon site : Big Probleme
    Bonjour :
    Alors voila mon probleme :
    J'ai une page php qui permet a mes membres d'uploader leur fichiers zip sur mon hebergeur. Il y avait pas mal de fichiers, tout etait beau.
    mais un jour, y en a 1 qui a envoyer son fichier plusieur fois avec comme nom celui d'un fichier existant... Du coup, il a supprimé tous les fichiers des autres membres (enfin du moins il les a remplacé par le sien)...

    Comment faire donc pour que si le fichier existe, on envoit pas le fichier maison affiche une mesagebox comme quoi il existe déja, sinon on peu l'envoyer?

    Voici mon code :
    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
    <?php
     
    //------------------------------------
    // Script réalisé par Webdeb73
    // Le 17/10/2004
    // Licence GNU/GPL
    // http://www.webmaster-debutant.net
    //-------------------------------------
     
     
    //----------------------------
    // DEFINITION DES VARIABLES
    //----------------------------
     
    $target = "Jeux/"; // Repertoire cible
    $extension = "zip"; // Extension du fichier sans le .
    $max_size = 6291456; // 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'];
    $nom_file = time().'_'.$nom_file;
     
    //----------------------
    // SCRIPT D'UPLOAD
    //----------------------
     
    if($_POST['posted'])
    {
     
    // On vérifie si le champ est rempli
     
    if($_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 '<p align="center">';
            echo '<font face="Verdana" size="2" color="#FF0000">';
            echo '<b>Fichier .zip uploadé avec succès !</b>';
            echo '</font>';
            echo '<hr>';
            echo '<b>Fichier :</b> '.$_FILES['fichier']['name'].'</br>';
            echo '<b>Taille :</b> '.$_FILES['fichier']['size'].' Octets</br>';
    		echo '<b>Emplacement :</b> http://www.gmzone.telecharger-jeux-gratuits.fr/'.$_FILES['fichier']['name'].'</br>';
            echo '<b>ou :</b> http://upload.gmzone.fr/'.$_FILES['fichier']['name'].'</br>';
            echo '<hr>';
            echo '<br><br>';
          }
           else
          {
     
           // Sinon on affiche une erreur système
     
            echo '<p align="center">';
            echo '<font face="Verdana" size="2" color="#FF0000">';
            echo '<b>Problème lors de l\'upload !</b><br><br><b>'.$_FILES['fichier']['error'].'</b>';
            echo '</font><br><br>';
          }
        }
         else
        {
     
         // Sinon on affiche une erreur pour les dimensions et taille de l'image
     
          echo '<p align="center">';
          echo '<font face="Verdana" size="2" color="#FF0000">';
          echo '<b>Problème dans les dimensions ou taille de l\'image !</b>';
          echo '</font><br><br>';
        }
      }
       else
      {
     
       // Sinon on affiche une erreur pour l'extension
     
        echo '<p align="center">';
        echo '<font face="Verdana" size="2" color="#FF0000">';
        echo '<b>Votre fichier ne comporte pas l\'extension .zip !</b>';
        echo '</font><br><br>';
      }
    }
    else
    {
     
    // Sinon on affiche une erreur pour le champ vide
     
      echo '<p align="center">';
      echo '<font face="Verdana" size="2" color="#FF0000">';
      echo '<b>Le champ du formulaire est vide !</b>';
      echo '</font><br><br>';
    }
    }
    ?>
    PS : j'y connais rien en php...

  2. #2
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
        {
         // Si c'est OK, on teste l'upload
    Il faut rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if(!file_existst($target.$_FILES['fichier']['name'])) {
       //Ton code d'nevoi de fichier
    }
    else {
     //Erreur systeme !!!
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    Nikel
    Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Ou sinon tu stock les noms des fichiers dans la BDD et tu verifie qu'avec le nouveau nom y a aucune ligne qui correspond avant d'accepter.

  5. #5
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Ou encore renommer le fichier en timestamp.jpg, comme cela tu es sur qu'il soit unique car il n'est pas possible d'enregistrer 2 fichiers à la meme centieme de seconde ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Citation Envoyé par AurelBUD
    Ou encore renommer le fichier en timestamp.jpg, comme cela tu es sur qu'il soit unique car il n'est pas possible d'enregistrer 2 fichiers à la meme centieme de seconde ...
    ouais mais alors la la galere pour se souvenir le nom du fichier si tu veux le reafficher sur un autre site en lien

  7. #7
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Pas si tu le stocke dans une base avec un nom plus parlant ...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Citation Envoyé par AurelBUD
    Pas si tu le stocke dans une base avec un nom plus parlant ...
    Oui et donc pour metre le lien sur un autre site faut que tu puisses appeler ta base de donné, c'est sur tu pourras metre du PHP sur un autre site, et ensuite faire ta requete tout ca pour une image, tres rapide.

    Moi je rajouterais juste un nombre a la fin du nom de fichier generé en fonction des images ayant le meme nom ou u ntruc du genre c'est plus simple que le timestamp

  9. #9
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Moi je rajouterais juste un nombre a la fin du nom de fichier generé en fonction des images ayant le meme nom ou u ntruc du genre c'est plus simple que le timestamp
    oui ca aussi ca fonctionne ... ca oblige juste de faire un test sur le nom de fichier et à boucler (si tu as 15 images qui s appelle test par exemple) pour incrementer le nombre au bout du nom ...
    A toi de choisir la solution que tu preferes ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/01/2008, 02h14
  2. Creer un systeme de comptage de clic pointant vers mon site
    Par MacOramix dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 02/10/2007, 08h37
  3. Réponses: 5
    Dernier message: 05/02/2007, 23h00
  4. [Upload] php.ini et upload
    Par djedje37et28 dans le forum Langage
    Réponses: 8
    Dernier message: 03/08/2006, 20h54
  5. [Upload] copier un fichier (lien http) vers mon site
    Par dinver dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2006, 11h21

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