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 :

Décompression d'un fichier zip


Sujet :

Langage PHP

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Le code totalement fonctionnel qui me permet d'upload un fichier .zip est celui ci :
    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
    if (isset($_FILES['fichier'])) {
                // Dossier de destination
                $dossier = 'plans/';
                //Extrait le nom du fichier
                $fichier = basename($_FILES['fichier']['name']);
                //Taille maximalle 50Mo
                $taille_maxi = 50000000;
                //Lit taille fichier
                $taille = filesize($_FILES['fichier']['tmp_name']);
                // Création tableaux avec format autorisé
                $extensions = array('.zip');
                // Récupère la partie de la chaine à partir du dernier . pour connaitre l'extension
                $extension = strrchr($_FILES['fichier']['name'], '.');
                // 
                if (!in_array($extension, $extensions)) {
                    $erreur = "Vous devez uploader un fichier de type .ifc";
                }
                if ($taille > $taille_maxi) {
                    $erreur = "Le fichier est trop volumineux, veuillez upload un fichier de moins de 50Mo.";
                }
                if (!isset($erreur)) {
                    // Remplacement des lettres accentuées
                    $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                    // Expression régulière remplaçant tout ce qui n'est pas chiffre ou lettre non-accentués par '-'
                    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
                    //Si fichier bon et déplacé, exécution ajout info base
                    if (move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) {
                        require 'connect.php';
                        // récupérations des valeurs des champs : 
                        $ajoutnom = $_POST["nom_plan"];
                        $ajoutdesi = $_POST["desi_plan"];
                        $nomplan = $_FILES['fichier']['name'];
                        $lienplan = 'plans/' . $nomplan;
     
                        //requête sql : 
                        $ajoutPlanSQL = "INSERT INTO vv_plans (nom_plan, designation, lien_plan)
                                VALUES( :nom_plan, :desi_plan, :lien_plan)";
     
                        // exécution de la requête : 
                        $sth = $dbh->prepare($ajoutPlanSQL);
                        $sth->execute(array(':nom_plan' => $_POST["nom_plan"], ':desi_plan' => $_POST["desi_plan"], ':lien_plan' => $lienplan));
     
                        // vérification de l'exécution 
                        if ($sth) {
                            header("location:ajoutPlan.php");
                        } else {
                            echo "Ajout base échoué";
                        }
                    } else {
                        echo 'Echec upload..';
                    }
                } else {
                    echo $erreur;
                }
            }
            ?>
    Quand le fichier est upload on rentre les données voulu dans la base.

    Après quand je veux ajouter la décompression du zip ça donne ceci :
    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
    if (isset($_FILES['fichier'])) {
                // Dossier de destination
                $dossier = 'plans/';
                //Extrait le nom du fichier
                $fichier = basename($_FILES['fichier']['name']);
                //Taille maximalle 50Mo
                $taille_maxi = 50000000;
                //Lit taille fichier
                $taille = filesize($_FILES['fichier']['tmp_name']);
                // Création tableaux avec format autorisé
                $extensions = array('.zip');
                // Récupère la partie de la chaine à partir du dernier . pour connaitre l'extension
                $extension = strrchr($_FILES['fichier']['name'], '.');
                // 
                if (!in_array($extension, $extensions)) {
                    $erreur = "Vous devez uploader un fichier de type .ifc";
                }
                if ($taille > $taille_maxi) {
                    $erreur = "Le fichier est trop volumineux, veuillez upload un fichier de moins de 50Mo.";
                }
                if (!isset($erreur)) {
                    // Remplacement des lettres accentuées
                    $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                    // Expression régulière remplaçant tout ce qui n'est pas chiffre ou lettre non-accentués par '-'
                    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
                    //Si fichier bon et déplacé, exécution ajout info base
                    if (move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) {
                        $zip = new ZipArchive;
                        if ($zip->open('test.zip') === TRUE) {
                            $zip->extractTo('/mon/dossier/destination/');
                            $zip->close();
                            echo 'ok';
                        } else {
                            echo 'échec';
                        }
    Du coup qu'est ce que je dois changer dedans pour conserver l'upload du fichier ?
    Parce que dans la version précédente fais avec ton aide, ce qui chnge c'est :

    Ajout de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fichierUp = $_FILES['fichier']['tmp_name'];
                $nomfichier = $_FILES['fichier']['name'];
    Et modification du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (move_uploaded_file($fichierUp. './' .$nomfichier )) {
    et du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $zip->open('./' . $nomfichier);

  2. #22
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta partie decompression avec à l'interieur de la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if (move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) {
                        $zip = new ZipArchive;
                        if ($zip->open($dossier . $fichier) === TRUE) {

    Ca aurait été plus clair si tu nous avais montré le code dés le début
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Points : 36
    Points
    36
    Par défaut
    Je pensais bien faire en mettant pas tout mon pavé de code.. Je ne voulais pas inondé le topic !

    J'aurais du apparemment, vu que ça marche maintenant !

    Merci de ton aide et de ton temps en tout cas

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Décompresser des fichiers ZIP de plus de 35 Mo
    Par Général03 dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2010, 10h03
  2. Comment décompresser un fichier Zip ?
    Par binocle100 dans le forum Débuter
    Réponses: 4
    Dernier message: 04/03/2010, 08h22
  3. Compresser et Décompresser un fichier ZIP
    Par AAWOOPY56 dans le forum AIX
    Réponses: 1
    Dernier message: 16/02/2010, 14h32
  4. Comment décompresser un fichier zip
    Par michel71 dans le forum Débuter
    Réponses: 11
    Dernier message: 20/01/2010, 13h21
  5. Réponses: 1
    Dernier message: 10/02/2009, 17h28

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