Heim > Artikel > Web-Frontend > Wie kann ich Dateien mithilfe von JavaScript asynchron in einem Webbrowser entpacken?
Zum Anzeigen von OpenOffice-Dateien (.odt und .odp ) in einem Webbrowser, muss man sie zuerst entpacken. Während inflate.js für diese Aufgabe möglicherweise nicht ausreicht, gibt es eine robuste JavaScript-Lösung zum asynchronen Entpacken von ZIP-Dateien.
Es wurde ein JavaScript-Unzipper entwickelt, der Elemente von Andy G.P. enthält. Nas Binärdatei-Reader und Notmasteryets RFC1951 erhöhen die Logik. Die ZipFile-Klasse übernimmt die Kernfunktionalität.
Der folgende JavaScript-Code demonstriert die Verwendung des Entpackers:
// 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}); }); }
Während der JavaScript-Entpacker seinen Zweck erfüllt, unterliegt er bestimmten Einschränkungen:
Das obige ist der detaillierte Inhalt vonWie kann ich Dateien mithilfe von JavaScript asynchron in einem Webbrowser entpacken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!