长期以来,在 Web 上处理文件一直是一个挑战,当诸如 各种文件 API 出现时,我真的很高兴!现在来看看最新的版本:ArchiveAPI,它提供了处理存档文件的功能。
介绍 Bleeding Edge
在我开始讨论 ArchiveAPI 之前,我想介绍一下 Mozilla Hacks 上的新 Bleeding Edge 类别。这意味着我们涵盖的都是尚未在 Firefox 或任何其他 Web 浏览器正式版本中发布的技术/特性/API。它涵盖了大多数情况下在 Firefox Nightly 或 Firefox Aurora 中首次实现的功能。
目标是让这些功能最终发布,但根据来自您(亲爱的开发者)的反馈或在此阶段发现的任何其他结果,可能会在发布之前对它们进行更改。
因此,欢迎您尝试!您可以抢先了解即将推出的功能,或者有机会影响 Web 开发人员功能的未来。双赢!:-)
是什么
作为 Mozilla WebAPI 计划 的一部分,旨在使 Web 成为一个更加强大的平台,我很幸运地与 ArchiveAPI 的首席开发者 Andrea Marchesini 进行了交谈。基本上,它允许您直接在 Web 浏览器中读取存档文件(例如 ZIP 文件)的内容。
基本上,我们有一个 ArchiveReader
对象,当它成功读取存档文件的内容时,我们可以遍历它们,读取文件数据,显示每个文件内容的预览等等。
var archiveFile = new ArchiveReader(archiveFileReference),
fileNames = archiveFile.getFilenames();
当您触发该文件的操作/方法(例如 getFilenames
)时,您将有两个处理程序:onsuccess
和 onerror
。就像这样
fileNames.onerror = function () {
console.log("Error reading filenames");
};
fileNames.onsuccess = function (request) {
// Get list of files in the archive
var result = this.result;
// Iterate over those files
for (var i=0, l=result.length; i<l; i++) {
file = archiveFile.getFile(result[i]);
file.onerror = function () {
console.log("Error accessing file");
};
file.onsuccess = function () {
// Read out data for that file, such as name, type and size
var currentFile = this.result;
console.log(currentFile.name);
}
}
}
演示
我整理了一个 ArchiveAPI 演示,您可以在其中上传一个存档文件,对于该存档中的任何图像或文本文件,它将直接在网页中生成一个预览。该 代码在 GitHub 上可用,作为我们 mozhacks GitHub 存储库 的一部分。
注意:目前此演示仅在 Firefox Aurora 和 Firefox Nightly 中有效。
我还整理了一个 YouTube 上的演示视频
(如果您已选择在 YouTube 上使用 HTML5 视频,您将看到它,否则它将回退到 Flash)
反馈
我希望您觉得这很有趣,并且是 Web 作为平台向前迈出的又一步!请在评论区告诉我们您的想法。
此外,您还可以参加一个关于 ArchiveAPI 异步特性的民意调查/问卷调查。它在 关于潜在 ArchiveReader API 的反馈 中可用。
关于 Robert Nyman [荣誉编辑]
Mozilla Hacks 的技术布道者和编辑。在 HTML5、JavaScript 和开放 Web 方面发表演讲和博客文章。Robert 是 HTML5 和开放 Web 的坚定支持者,自 1999 年以来一直在从事 Web 前端开发工作 - 在瑞典和纽约市。他还定期在 http://robertnyman.com 上发表博客文章,喜欢旅行和结识新朋友。
16 条评论