Page 1 sur 1

Lecture du contenu d'un fichier ZIP par JavaScript

Posté : 27 juin 2008, 14:28
par MainMa
Question toute bête : est-ce qu'il est possible, via JavaScript, d'accéder à du contenu d'un fichier ZIP téléchargé par exemple par AJAX ?

En l'espèce, j'ai une galerie photo ; sur une page, il y a 20 vignettes avec titres. Les pages sont changées via AJAX (car il y a juste les vignettes à changer), ce qui me fait 21 request vers le serveur à chaque fois (un request AJAX retournant les URL des nouvelles vignettes et les titres, plus 20 requests pour chaque nouvelle image), or j'aimerai bien réduire ça à deux requests seulement : le premier toujours pour les titres, le deuxième pour le fichier ZIP contenant les 20 vignettes.

PS. J'ai cherché sur Google ; j'ai trouvé juste les sujets où les personnes demandaient s'il est possible d'extraire (ou au contraire de compresser) un ZIP (et la réponse était non, JS n'ayant pas dans la majorité des cas l'accès au disque dur). Je precise donc que dans mon cas, je n'ai pas l'intention d'enregistrer les fichiers décompressés nulle part.

Posté : 27 juin 2008, 15:00
par mcorgnet
je pense que la solution est d'extraire le contenu du zip avec php, de renvoyer le contenu au navigateur, et de supprimer les fichiers extraits sur le serveur ensuite.

Je ne crois pas que javascript puisse répondre seul à ce besoin.

Posté : 27 juin 2008, 15:29
par MainMa
je pense que la solution est d'extraire le contenu du zip avec php, de renvoyer le contenu au navigateur, et de supprimer les fichiers extraits sur le serveur ensuite.
Justement, ce que je veux faire, c'est exactement l'inverse : de zipper les images coté serveur.
Je ne crois pas que javascript puisse répondre seul à ce besoin.
Bon. Dommage. :?

Posté : 01 juil. 2008, 07:00
par zecreator
Javascript ne te permettra jamais d'effectuer ce type d'opération (à part sous Internet Explorer, avec un composant activeX, mais là c'est vraiment pas sécurisé du tout).

Tu peux tout de même par javascript, récupérer le contenu d'un fichier ZIP en appelant un script PHP qui renverra les noms de fichiers contenu dans le ZIP sous forme XML (par exemple).

Ensuite, pour chaque photo, tu peux demander a un autre script PHP d'extraire le fichier voulu de l'archive pour le proposer en téléchargement.

Tu devras, de toutes façons passer par du code serveur.

Posté : 01 juil. 2008, 08:38
par MainMa
Tu peux tout de même par javascript, récupérer le contenu d'un fichier ZIP en appelant [...] Tu devras, de toutes façons passer par du code serveur.
Ouai, m'enfin... Là, c'est toujours l'inverse de ce que je voulais faire.
Javascript ne te permettra jamais d'effectuer ce type d'opération (à part sous Internet Explorer, avec un composant activeX, mais là c'est vraiment pas sécurisé du tout).
Oui ; j'ai vu quelque part cette solution. Évidemment, c'est pas satisfaisant du tout.

Bon, je considère donc la chose comme étant impossible à faire (à part de développer son propre application sous JS qui va pouvoir lire et... comprendre le contenu d'un ZIP :-k )

Posté : 01 juil. 2008, 08:47
par mcorgnet
Reste la solution de flash, qui doit te permettre ce genre d'opérations.

Posté : 01 juil. 2008, 12:17
par MainMa
Ou Silverlight. :wink:
Oui, c'est vrai. J'y ai pas du tout pensé. Merci.