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

Servlets/JSP Java Discussion :

Charger un zip et le décompresser


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut Charger un zip et le décompresser
    Bonjour,

    J'aurais aimé :
    - uploader un fichier zip depuis un client vers mon serveur
    - dézipper le fichier télécharger qui contient un dossier (contenant des fichiers) et un fichier
    -supprimer le fichier zip en dernier lieu

    J'ai trouvé un code pour dézipper mais je n'arrive pas à lire les fichiers à l'intérieur du dossier zipper.

    Voici le 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
    try
            {
                context = getServletContext();
     
                String path ="Chemin jusqu'à mon fichier zip";
                uplDir = context.getRealPath("/").substring(0,context.getRealPath("/").lastIndexOf("\\"))+"\\export";
     
     
                byte[] buffer = new byte[2048];
                ZipInputStream zipinputstream;
                ZipEntry zipentry;
                zipinputstream = new ZipInputStream(new FileInputStream(path));
     
     
                zipentry = zipinputstream.getNextEntry();
                while (zipentry != null)
                {
                    //for each entry to be extracted
                    String entryName = zipentry.getName();
                    //System.out.println("entryname "+entryName);
     
                    LogWriter.add("TEST entrée",entryName);
                    int n;
                    FileOutputStream fileoutputstream;
                    File newFile = new File(entryName);
                    String directory = newFile.getParent();
     
                    if(directory == null)
                    {
                        if(newFile.isDirectory())
                        break;
                    }
     
                    fileoutputstream = new FileOutputStream(path+entryName);
     
                    while ((n = zipinputstream.read(buffer, 0, 2048)) > -1)
                                    fileoutputstream.write(buffer, 0, n);
     
                    fileoutputstream.close();
                    zipinputstream.closeEntry();
                    zipentry = zipinputstream.getNextEntry();
     
                }//while
     
                zipinputstream.close();
            }
            catch (Exception e)
            {
                LogWriter.add(this.getClass().toString(),e.toString());
            }
    Merci de votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    J'avoue ne pas avoir compris ce qui te posait problème ...
    Et

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut
    J'ai un fichier ZIP qui contient les choses suivantes :

    • 1 dossier
      • contenant 3 fichiers
    • 1 fichier


    Ce que j'aimerais, c'est pouvoir récupérer les fichiers qui se trouve dans mon dossier.

    Pour l'instant, mon code ne me retourne que le fichier contenu dans la racine de mon fichier ZIP, ainsi qu'un fichier de 0Ko avec le nom de mon dossier!

    Auriez-vous une solution??

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Il faut que tu testes dans ta boucle si le ZipEntry est un directory. Auquel cas il faut créer le répertoire correspondant.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut
    Bonjour!

    J'ai essayé de mettre en place un test afin de déterminer si l'entrée qui est lu dans le zip est un dossier ou pas, mais il me retourne que c'est un fichier alors qu'en réalité c'est un dossier.

    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
     
    public void unzip()
         {
              try
              {
                   BufferedOutputStream out = null;
                   ZipInputStream  in = new ZipInputStream(
                                                 new BufferedInputStream(
                                                      new FileInputStream("C:\\export\\eldiv2.4997.zip")));
                   ZipEntry entry;
                   while((entry = in.getNextEntry()) != null)
                   {
                        //System.out.println("Extracting: " + entry);
                        int count;
                        byte data[] = new byte[BUFFER];
     
                        // write the files to the disk
                        out = new BufferedOutputStream(
                                  new FileOutputStream("C:\\export\\"+ entry.getName()),BUFFER);
     
     
     
                        while ((count = in.read(data,0,BUFFER)) != -1)
                        {
                            if(entry.isDirectory())
                            {
                                LogWriter.add("it is a directory","");
                            }
                            else
                            {
                                out.write(data,0,count);
                                LogWriter.add("it is a file","");
                            }
                        }
                         out.flush();
                         out.close();
                   }
                   in.close();
     
              }
              catch(Exception e)
              {
                   e.printStackTrace();
     
              }
         }
    Je Comprends pas ce qui se passe

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Par défaut
    Merci de votre aide.

    J'ai trouvé la réponse à ma question


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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/06/2014, 15h47
  2. ZIP - obliger à se décompresser dans un dossier
    Par punky_brooster dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 18/09/2011, 22h42
  3. [ZIP] Erreur à la décompression
    Par alliance dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 08/09/2008, 17h32
  4. 7-Zip - Problème de décompression en ligne de commande
    Par Lorponos dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 26/07/2006, 15h07
  5. décompresser des .zip
    Par Nico65 dans le forum C++
    Réponses: 3
    Dernier message: 30/11/2004, 14h51

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