Bonjour à vous,
J'ai actuellement un problème sous la forme de pdf (stockés en mémoire dans des tableaux de bytes) qui ne se dézippent pas correctement.
Je m'explique :
j'ai une méthode
qui me décode mal certains fichiers zip. J'en ai parlé à mon responsable de stage qui m'a dit qu'il manquait une boucle sur les zipentry.
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 public static byte[] getUnzippedBytes(byte[] in) throws IOException { ByteArrayInputStream input = new ByteArrayInputStream(in); ZipInputStream zip = new ZipInputStream(input); //position the stream to the first and only entry ("xml") ZipEntry entry = zip.getNextEntry(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int read = zip.read(); while (read != -1) { baos.write(read); read = zip.read(); } input.close(); zip.close(); return baos.toByteArray(); }
J'ai donc modifié sa méthode en :
et ca ne me renvoie toujours pas un pdf en état de marche.
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 public static byte[] getUnzippedBytes(byte[] in) throws IOException { ByteArrayInputStream input = new ByteArrayInputStream(in); ZipInputStream zip = new ZipInputStream(input); //position the stream to the first and only entry ("xml") ZipEntry entry; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while((entry=zip.getNextEntry())!=null){ int read = zip.read(); while (read != -1) { baos.write(read); read = zip.read(); } } input.close(); zip.close(); return baos.toByteArray(); }
J'ai fait des recherches sur le net pour trouver ce genre de méthodes mais 99% des méthodes de zip que je trouve fonctionnent sur des fichiers, et c'est un peu le bordel si je dois créer le pdf pour le ré-inputter afin de l'afficher et le supprimer une fois affiché.
Je me demandais donc si vous aviez une idée de ce qui clochait dans ma nouvelle méthode?
Merci d'avance.
Partager