J'ai téléchargé mon zip archive sur le serveur et que vous voulez ouvrir .txt
et .jpg
fichiers dedans. J'ai réussi à obtenir mes archives dans mon contrôleur et obtenir le nom de chaque fichier via ZipEntry
. Maintenant, je veux l'ouvrir, mais pour cela, je devrais obtenir un chemin complet vers mon fichier.Printemps: comment analyser le fichier zip téléchargé?
Je n'ai pas trouvé comment je peux le faire. Pourriez-vous suggérer une approche pour ce faire?
Mise à jour
J'essaie d'utiliser par exemple ont été proposées ci-dessous, mais je ne suis pas en mesure d'ouvrir le fichier
ZipFile zFile = new ZipFile("trainingDefaultApp.zip");
J'ai la FileNotFoundException
Je reviens à mon point de départ. J'ai un formulaire de téléchargement dans l'application Java Spring. Dans le contrôleur j'avais obtenu une archive zip comme byte[]
@RequestMapping(method = RequestMethod.POST)
public String create(UploadItem uploadItem, BindingResult bindingResult){
try {
byte[] zip = uploadItem.getFileData().getBytes();
saveFile(zip);
Je l'avais obtenu chaque ZipEntry
InputStream is = new ByteArrayInputStream(zip);
ZipInputStream zis = new ZipInputStream(is);
ZipEntry entry = null;
while ((entry = zis.getNextEntry()) != null) {
String entryName = entry.getName();
if (entryName.equals("readme.txt")) {
ZipFile zip = new ZipFile(entry.getName()); // here I had got an exception
Selon docs, je fait tout droit, mais comme pour moi, il est étrange de ne laisser passer que le nom du fichier et soupçonne que vous allez ouvrir avec succès le fichier
Que voulez-vous dire? Vous avez dit que vous l'ouvrez avec succès; à quoi n'avez-vous pas de "chemin complet"? –
J'ai ouvert CommonsMultipartFile qui contient mon archive zip comme octet []. Je le convertis en ZipInputStream et en boucle j'ai un ZipEntry pour chaque fichier dans mes archives. Maintenant, je veux lire ce fichier .txt et le fichier .jpg, mais ZipEntry ne contient que les noms de ces fichiers. Donc je n'ai pas un chemin complet vers ces fichiers et je ne peux pas l'ouvrir en tant que nouveau fichier ("d: /some.txt") –