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 :

[FTP] récupérer un fichier ZIP sur un FTP et extraire le fichier +incorporer en BDD


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut [FTP] récupérer un fichier ZIP sur un FTP et extraire le fichier +incorporer en BDD
    Bonjour,
    j'aurais besoin de :
    - récupérer un fichier ZIP sur un FTP
    - extraire le fichier du ZIP
    - incorporer ce fichier TXT en BDD

    j'ai trouvé un code pour récupérer via mon ftp

    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
     
    // Mise en place d'une connexion basique
    $conn_id = ftp_connect($ftp_server); 
    // Identification avec un nom d'utilisateur et un mot de passe
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
    // Vérification de la connexion
    if ((!$conn_id) || (!$login_result)) 
    	{         
    		echo "La connexion FTP a échoué !";        
    		echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";         
    		exit;
         } 
    	else 
    	{  echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";    }// Chargement d'un fichier
     
     
    // RECUP DU FICHIER
    // Définission de variables
    $local_file = 'XXXXXX.ZIP'; 
    $server_file = '/xxxx/XXXXXX.ZIP';
    // Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) 
    	{    echo "Le fichier $local_file a été chargé avec succès\n";} 
    else {    echo "Il y a un problème.\n";}
    // Fermeture de la connexion
    ftp_close($conn_id);
    mais j'ai le message :
    Fatal error: Maximum execution time of 30 seconds exceeded in ... à la ligne de mon { echo "Le fichier $local_file a été chargé avec succès\n";}

    ça met environ 3 minutes pour charger mon fichier de 4 988 Ko. apparemment il est entier.
    c'est pas un peu long ?

    comment résoudre cette erreur ?

    ensuite quel est le code pour extraire le fichier texte qui se trouve dans mon ZIP ?

    ensuite si quelqu'un a la manière de lire un fichier texte séparé par des virgules, et le texte entre guillemets, ça m'arrangerait que vous me mettiez sur la voie... je n'ai jamais fait cela en PHP.
    j'ai besoin de mettre en base de données les informations...

    Merci d'avance à tous et Bon WE

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Rose95
    mais j'ai le message :
    Fatal error: Maximum execution time of 30 seconds exceeded in ... à la ligne de mon { echo "Le fichier $local_file a été chargé avec succès\n";}
    Il est possible que le transfere via ftp_get dure plus de 30 sec, essais d'augmenté la valeur de la directive max-execution-time dans le fichier php.ini se qui te permettra de laisser plus de 30 sec a l'execution de ton script.

    cf: max-execution-time

    ++ nairolf

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci
    j'avais déjà testé, mais ça ne fonctionnait pas en local avec easyphp
    alors que ça fonctionne en ligne
    donc ce pb est résolu

    j'ai touvé comment lire un fichier texte et l'inclure dans ma base de données

    mais il me reste à trouver comment faire pour dézipper un fichier
    j'ai trouvé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $zip = new ZipArchive;
    if ($zip->open('ingram/PRICE.ZIP') === TRUE) {
        $zip->extractTo('ingram/');
        $zip->close();
        echo 'ok';
    } else {
        echo 'échec';
    }
    ?>
    mais j'ai l'impression qu'il faut que j'installe une librairie ou quelque chose comme ça, quelqu'un pourrait m'aider ?

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tout dépend de ta configuration, souvent la DLL php_zip.dll est présente mais il faut surement l'activer dans ton php.ini.

    Developpez.com est ton ami, il y a un article sur l'utilisation de cette librairie ICI

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut
    Moi je te conseil d'utiliser la pclzip.lib, elle est superfacile à utiliser est accessible http://www.phpconcept.net/download.p...pclzip-2-5.zip
    Ensuite c'est tout bete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    include('pclzip.lib.php');
    $archive = new PclZip('mon_archive_à_dézipper.zip');
    if ($archive->extract(PCLZIP_OPT_PATH, './dossier_de_sortie/') == 0) {
        die("Error : ".$archive->errorInfo(true));
    }
    et voila le tour est joué n'oublie pas de creer le dossier de sortie, la fonction dezip dedans, elle ne créé pas le dossier.

    Max

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par maxime.ohayon
    Moi je te conseil d'utiliser la pclzip.lib, elle est superfacile à utiliser est accessible http://www.phpconcept.net/download.p...pclzip-2-5.zip
    Ensuite c'est tout bete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    include('pclzip.lib.php');
    $archive = new PclZip('mon_archive_à_dézipper.zip');
    if ($archive->extract(PCLZIP_OPT_PATH, './dossier_de_sortie/') == 0) {
        die("Error : ".$archive->errorInfo(true));
    }
    et voila le tour est joué n'oublie pas de creer le dossier de sortie, la fonction dezip dedans, elle ne créé pas le dossier.

    Max
    je trouve ça simple, mais problème : ça fonctionne en local donc sous windows et easyphp
    mais ça ne fonctionne pas en ligne
    mon but étant :
    après avoir téléchargé un fichier via une connection ftp me connectant au serveur d'un de mes fournisseurs : je copie le fichier dans un répertoire de mon site internet,
    ensuite j'aimerais pouvoir le dézipper (toujours sur le serveur de mon site) pour après pouvoir le traiter et intégrer les données dans ma base de données MySQL

    je suis en ligne sous Apache/1.3.33 (Unix) PHP/4.3.10

    help !

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    L'extension dont je t'ai parlé existe pour windows ET unix, pour PHP 4 et 5, maintenant il faut que ton hebergeur l'active par défaut (ou que tu puisses l'activer ou demander son activation).

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut
    je trouve ça simple, mais problème : ça fonctionne en local donc sous windows et easyphp
    mais ça ne fonctionne pas en ligne
    Si si je te jure que sa marche sous unix et sur un serveur distant,
    tu n'as pas du bien adapter mon code.

    Max

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par maxime.ohayon
    Si si je te jure que sa marche sous unix et sur un serveur distant,
    tu n'as pas du bien adapter mon code.
    eh bien j'ai essayé , même en mettant le nom complet du répertoire et ça ne fonctionne pas ...
    y'a rien à mettre dans php.ini ou quelque chose d'autre ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    include('pclzip-2-5/pclzip.lib.php');
    $archive = new PclZip('./mondossier/MONFICHIER.ZIP');
    if ($archive->extract(PCLZIP_OPT_PATH, './mondossier/') == 0) {
        die("Error : ".$archive->errorInfo(true));
    }
    j'ai pas regardé ce qu'il y avait dans le fichier pclzip.lib.php, j'ai un peur de rien comprendre de toute manière !...

    j'ai pas d'erreur,
    moi sur ma machine il marque impossible d'afficher la page
    et mon collègue, il n'a rien, page blanche ...

    j'ai essayé avec et sans le ./ d'un coté et/ou de l'autre, rien n'y fait ...

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 113
    Points : 226
    Points
    226
    Par défaut
    Salut
    moi sa marche toujours aussi nikel, je trouve ca bizarre et je crains que je ne peux pas t'aider.

    Max

Discussions similaires

  1. Downloader un fichier .zip sur un ftp
    Par Dadasss dans le forum R
    Réponses: 0
    Dernier message: 26/02/2014, 12h49
  2. Récupérer automatiquement un fichier .csv sur serveur FTP
    Par oagi_jaheim dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 13/09/2009, 18h19
  3. afficher les fichiers stockés sur serveur ftp
    Par stagolee dans le forum Hébergement
    Réponses: 2
    Dernier message: 27/11/2007, 18h41
  4. [FTP] Gestion fichier PHP sur serveur FTP
    Par cdrik59 dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2006, 16h00
  5. [FTP] Listing fichiers comme sur un FTP
    Par zxr69 dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2006, 14h22

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