Maison >interface Web >js tutoriel >Comment puis-je décompresser des fichiers de manière asynchrone dans un navigateur Web à l'aide de JavaScript ?
Pour afficher les fichiers OpenOffice (.odt et .odp ) dans un navigateur Web, il faut d'abord les décompresser. Bien que inflate.js ne suffise pas pour cette tâche, il existe une solution JavaScript robuste pour décompresser les fichiers ZIP de manière asynchrone.
Un décompresseur JavaScript a été développé, incorporant des éléments d'Andy G.P. Le lecteur de fichiers binaires de Na et la logique de gonflage RFC1951 de Notmasteryet. La classe ZipFile gère les fonctionnalités de base.
Le code JavaScript suivant illustre l'utilisation du décompresseur :
// Instantiate a ZipFile and provide a callback for when the ZIP is read. zipFile = new ZipFile(url, doneReading); // The doneReading callback is triggered when the ZIP is read and handles the extraction of entries. function doneReading(zip) { extractEntries(zip); } // Extract entries from the ZIP file. function extractEntries(zip) { for (var i = 0; i < zip.entries.length; i++) { var entry = zip.entries[i]; // Create an entry info div. var entryInfo = "<h4><a>" + entry.name + "</a></h4>\n<div>"; // Create a unique ID for the accordion panel and inject the extracted content into it. var randomId = "id-" + Math.floor((Math.random() * 1000000000)); entryInfo += "<span class='inputDiv'><h4>Content:</h4><span id='" + randomId + "'></span></span></div>\n"; $("#report").append(entryInfo); // Asynchronously extract the entry and pass a callback. entry.extract(extractCb(randomId)); } } // Extract callback function to add the extracted content to an accordion on the page. function extractCb(id) { return (function(entryName, entryText){ var content = entryText.replace(new RegExp( "\n", "g" ), "<br/>"); $("#"+id).html(content); $('#report').accordion('destroy'); $('#report').accordion({collapsible:true, active:false}); }); }
Bien que le programme de décompression JavaScript remplisse son objectif, il est confronté à certains limitations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!