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 :

Sauvegarder un fichier CSV dans un dossier sur le serveur


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut Sauvegarder un fichier CSV dans un dossier sur le serveur
    Bonjour,

    je suis un projet ou je récupère un fichier csv par upload, ensuite il est placé dans une bdd pour être transformé en tableau mais uniquement les colonnes que je souhaite, jusque la tout fonctionne.

    je cherche a faire soit :

    - une sauvegarde du fichier csv sur un dossier de mon serveur : csv/
    ou
    - une sauvegarde du tableau généré :csv/

    c'est a ce niveau que je bloque

    le code upload de mon fichier csv :

    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
    <form enctype="multipart/form-data" action="import_csv.php?id=<?php echo $id ;?>" method="post">
            <div class="input-row">
                <label class="col-md-4 control-label">Importer fichier CSV Optimus</label>
                <input type="file" name="file" id="file" accept=".csv">
                <br />
                <br />
                <button type="submit" id="submit" name="import" class="btn-submit">Import</button>
                <br />
            </div>
        </form>
     
    <?php
      // Connect to database
     
      $id = $_GET['id'];
      $csv = 'csv'.$id;
      include("db_connect.php");
      if (isset($_POST["import"])) {
     
        $fileName = $_FILES["file"]["tmp_name"];
     
        if ($_FILES["file"]["size"] > 0) {
     
          $file = fopen($fileName, "r");
     
          while (($column = fgetcsv($file, 10000, ";")) !== FALSE) {
            $sql = "INSERT  INTO `".$csv."`( `COL 14`, `COL 24`) 
            values ('" . $column[14] . "','" . $column[24] . "')";
            $result = mysqli_query($conn, $sql);
     
            if (! empty($result)) {
              $type = "success";
              $message = "Les Données sont importées dans la base de données";
            } else {
              $type = "error";
              $message = "Problème lors de l'importation de données CSV";
            }
          }
        }
      }
     
     
      header('Location: index3.php?id='.$id);
      exit;
    ?>
    j'ai essayé :

    move_uploaded_file($_FILES['file']['tmp_name'], "csv/$name");

    mais je ne doit pas le placer ou il faut, ou alors existe il une autre méthode .

    merci de votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut
    alors j'ai modifié comme cela et ca fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $uploaded_file = $_FILES['file']['tmp_name'];
        $destination_path = 'csv/' . $_FILES['file']['name'];
        if (move_uploaded_file($uploaded_file, $destination_path)) {
        echo "File uploaded successfully!";
        } else {
        echo "Error uploading file.";
        }
    maintenant dans la destination je souhaite mettre csv$id et la date ay début du nom du fichier

    pour que cela devienne : csv/csv1/(date et heure)csv2.csv

    variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $csv = 'csv'.$id;
      $dt = new \DateTime();

  3. #3
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut
    en refaisant mon code j'arrive a ce que je veux le fichier csv va bien dans le répertoire voulu avec le nom daté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $uploaded_file = $_FILES['file']['tmp_name'];
    	$file = $_FILES['file']['name'];
        $destination_path = 'csv/'.$csv.$dt.'-'.$file;
        if (move_uploaded_file($uploaded_file, $destination_path))
    	{echo "ok";}
    mais si j'utilise sans la condition ca ne fonctionne pas et le reste de mon code ne fonctionne pas non plus.

    j'aimerais créer ma table et uploader mon fichier

    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
    <?php
      // Connect to database
     
      $id = $_GET['id'];
      $csv = 'csv'.$id.'/';
      $dt = date('Y-m-d_H:i:s');
      include("db_connect.php");
     
     
        $uploaded_file = $_FILES['file']['tmp_name'];
    	$file = $_FILES['file']['name'];
        $destination_path = 'csv/'.$csv.$dt.'-'.$file;
        if (move_uploaded_file($uploaded_file, $destination_path))
    	{echo  "ok";}
     
     
     
     
      if (isset($_POST["import"])) {
     
        $fileName = $_FILES["file"]["tmp_name"];
     
     
     
     
        if ($_FILES["file"]["size"] > 0) {
     
          $file = fopen($fileName, "r");
     
          while (($column = fgetcsv($file, 10000, ";")) !== FALSE) {
            $sql = "INSERT  INTO `".$csv."`( `COL 14`, `COL 24`)  
    		values ('" . $column[14] . "','" . $column[24] . "')";
            $result = mysqli_query($conn, $sql);
     
            if (! empty($result)) {
              $type = "success";
              $message = "Les Données sont importées dans la base de données";
            } else {
              $type = "error";
              $message = "Problème lors de l'importation de données CSV";
            }
          }
        }
      }
     
      //Retourner à la page index.php
      header('Location: index3.php?id='.$id);
      exit;
    ?>
    je ne sais pas comment procéder.

    merci

  4. #4
    Membre confirmé
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Par défaut
    J'ai modifié comme ca et ca fonctione.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while (($column = fgetcsv($file, 10000, ";")) !== FALSE) {
            $sql = "INSERT  INTO `".$csv."`( `COL 14`, `COL 24`)  
    		values ('" . $column[14] . "','" . $column[24] . "')";
            $result = mysqli_query($conn, $sql);
     
            if (! empty($result)) {
              move_uploaded_file($uploaded_file, $destination_path);
            } else {
              $type = "error";
              $message = "Problème lors de l'importation de données CSV";
            }

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

Discussions similaires

  1. Importation fichier CSV dans un dossier
    Par B.M.W83 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 03/10/2018, 13h42
  2. Réponses: 2
    Dernier message: 20/04/2011, 15h26
  3. Copier un fichier dans un dossier sur le serveur avec PHP
    Par dotnet_kbma dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 31/01/2010, 21h27
  4. [MySQL] Copier un fichier telechargé par un formulaire dans un dossier sur le serveur
    Par dotnet_kbma dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/01/2010, 15h35
  5. Sauvegarder un fichier Word dans un dossier spécifique
    Par vash641 dans le forum VBA Word
    Réponses: 2
    Dernier message: 27/05/2009, 19h09

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