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

PHP & Base de données Discussion :

Uploader un ou plusieurs fichiers


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Uploader un ou plusieurs fichiers
    Bonjour,
    Je reviens avec un sujet que j’ai vraiment du mal à maitriser.
    J’aimerais faire un mélange de tutoriels téléchargés sur developpez.com, mais ça coince.
    J’ai commencé par installer (Upload multiple de fichiers) puis j’ai fait des mélanges avec différents tuto, dont voici les explications.
    D’apparence (Upload multiple de fichiers) fonctionne très bien, je peux insérer plusieurs fichiers et les supprimer un par un, formidable.
    J’ai créé un dossier nommé (fichier_client) sur le serveur pour y recevoir les fichiers.
    J’ai créé une base de données (client_fichier) uniquement pour pouvoir uploader :
    Id_client_fichier ……. smallint …..UNSIGNED……auto_increment
    date………………………….datetime
    fichier………………………blob
    Le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form id="form" action="upload.php" method="post" enctype="multipart/form-data">
      <input name="MAX_FILE_SIZE" value="100000"  type="hidden" /> 
    <input class="btn"  value="Envoyer" name="fichier" type="submit" /></form>
    Le fichier PHP (upload.php) :
    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
     
    <?php
    $host = "localhost";
    $user = "root";
    $password = "";
    $database = "AA9BB59K2";
    $dossier = 'fichier_client/'; 
    $fichier = basename($_FILES['fichier']['name']);
    $taille_maxi = 100000;
    $taille = filesize($_FILES['fichier']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier']['name'], '.'); 
    if(!in_array($extension, $extensions))
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur))
    {
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if ($tailleMax > $poidsFichier) {
    if(copy($nomTemporaire, $chemin.$nomFichier)){ //il upload
    $connexion = mysql_connect($host,$user,$password);
    $choix_base = mysql_select_db($database, $connexion);
    $result = mysql_query("INSERT INTO client_fichier (date, fichier) ".
     "VALUES ('".$_POST ['fichier']."', NOW())");
    if(!$result){
    }    
    	 if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier))
         {
              echo 'Upload effectué avec succès !';
         }
         else 
         {
              echo 'Echec de l\'fichier_client !';
         }
    }
    else
    {
         echo $erreur;
    }
    ?>
    Avec tout ça j’obtient ce message d’erreur :
    Parse error: syntax error, unexpected $end in /var/www/data/woo/A/A/9/B/ AA9BB59K/contact/upload.php on line 47

    La ligne 47 correspondrait à : ?>

    J’ai fait un mélange de tout ça, mais rien ne se passe.
    Mon but, pourvoir uploader un ou plusieurs fichiers en une seule fois .
    Malgré les tutoriels et mes livres je n’y arrive pas, j’ai vraiment besoin d’un bon coup de pouce, merci de votre aide.
    Bien cordialement d'un petit développeur en détresse.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 88
    Par défaut
    Bonjour,

    Je pense qu'il manque l'accolade de fin

    correspondant à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(!isset($erreur))
    {
    .
    .
    .
    .
    ..
    }

  3. #3
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut
    Dans la plupart des cas, correspond à l'oublie d'un point virgule ou d'une accolade

  4. #4
    Invité
    Invité(e)
    Par défaut
    ??
    Vérifie tes accolades :
    certaines doivent être mal placées, et/ou manquantes.

    Note : un code "bien écrit" (avec des tabulations, passage à la ligne, ..., où il faut) est plus facile à lire et donc à corriger.

  5. #5
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir,
    Merci pour votre aide, j’ai corrigé quelques erreurs, mais maintenant voici un autre message d’erreur :

    Warning: copy() [function.copy]: Unable to access in /var/www/data/woo/A/A/8/B/AA8BA43K/contact/upload.php on line 28

    Il se passe un phénomène étrange, j’ai effectué deux essais et je retrouve deux entrées dans ma table ( client_fichier ) mais la date et l’heure sont à zéro.. !
    Et dans la colonne fichier ( BLOB ) il est inscrit blob – 19 Octets !
    Mais il n’y a pas de fichier dans mon dossier fichier_client !

    id_client_fichier date fichier

    1 0000-00-00 00:00:00 [BLOB - 19 Octets]

    2 0000-00-00 00:00:00 [BLOB - 19 Octets]

    Voici mon nouveau 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
     
    <?php
    $host = "localhost";
    $user = "root";
    $password = "";
    $database = "AA8BA43K1";
    $dossier = 'fichier_client/';
    $fichier = basename($_FILES['fichier']['name']);
    $taille_maxi = 100000;
    $taille = filesize($_FILES['fichier']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier']['name'], '.'); 
    if(!in_array($extension, $extensions))
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)){
    }
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
     if ($tailleMax > $poidsFichier);
    if(copy($nomTemporaire, $chemin.$nomFichier));
    $connexion = mysql_connect($host,$user,$password);
    $choix_base = mysql_select_db($database, $connexion);
    $result = mysql_query("INSERT INTO client_fichier (date, fichier) VALUES ('".$_POST ['fichier']."', NOW())");
     
    if(!$result){
    }
     
    	 if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier));
    	 $deconnexion = mysql_close($connexion);
       print "<script type='text/javascript'>window.location='form.htm'</script>";
       exit;
     
    ?>
    Merci beaucoup

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(copy($nomTemporaire, $chemin.$nomFichier));
    C'est censé faire quoi ca par rapport au move_uploaded_file() deux lignes plus bas ?
    Aucune des variables n'est de plus définie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/11/2012, 16h05
  2. Upload parallelle de plusieurs fichiers sur même domain.
    Par Fabouney dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 05/10/2009, 12h05
  3. Réponses: 10
    Dernier message: 12/06/2006, 16h45
  4. [Upload] Uploader plusieurs fichiers de façon aleatoire
    Par derric8016 dans le forum Langage
    Réponses: 3
    Dernier message: 08/03/2006, 17h52
  5. Réponses: 3
    Dernier message: 21/02/2006, 16h43

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