问题标签 [fileapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Gecko/WebKit 中的多次上传:允许在上传前从列表中删除
我正在尝试在元素上使用新的 multiple="multiple" 属性。到目前为止,最近的 Gecko 和 WebKit 浏览器都支持这一点。我正在 Firefox 3.6 和 Chrome 5.0 上进行测试。
我可以很好地使用它,并显示文件列表(我以此为指导)。然而,令人沮丧的是,用户似乎不可能在添加文件后从该列表中删除文件。唯一的方法是单击“浏览...”按钮并选择一组新文件。
这是因为<input>
元素提供的 FileList 对象是只读的,如规范中所述(无法链接 - 请参阅 W3C 网站上的 FileAPI TR)。
当然有解决方法,例如保留“已删除”项目的列表,无论如何上传所有内容,然后忽略“已删除”项目。这有点脏,如果“删除”大量文件,可能会使上传速度慢得令人无法接受。
有谁知道任何其他解决方法,或者有更好的想法如何处理这个问题?目的是能够使用“多个”属性,并允许用户在上传之前从列表中删除文件。
html - 如何在现代浏览器中生成缩略图客户端?
我正在寻找一种优雅的方式来生成与FileAPI一起使用的缩略图。目前我得到一个代表图像的DataURL 。问题是,如果图像非常大,那么移动它并重新渲染它会占用大量 CPU。我可以看到 2 个选项来解决这个问题。
- 在客户端生成缩略图
- 在服务器上生成缩略图,将缩略图发送回客户端(AJAX)。
与HTML5
我们有一个canvas
元素?有谁知道如何使用它从图片生成缩略图?它们不必是完美的——采样质量是可以接受的。有没有jQuery
可以为我做这个的插件?有没有其他方法可以加快客户端使用大图像的速度?
我正在使用HTML5
,并且Firefox 3.6+
:不需要支持其他任何东西Firefox 3.6+
,请不要提供建议IE 6.0
javascript - IE9 Developer preview (Build 4, v1.9.7.9.16.6000) 是否支持 File API?
最新的 IE9 开发者预览版(Build 4,v1.9.7.9.16.6000)是否支持文件 API?我指的文件API是:http ://www.w3.org/TR/file-upload/
Caniuse.com表示支持是未知的,而Wikipedia表示不支持,但没有指定它所指的 Trident 版本。
不幸的是,我目前没有安装 Vista 或 7 的 Windows 机器进行测试。
javascript - File API:哪些浏览器支持 slice 方法?
目前对该slice
方法的支持是什么?
javascript - Javascript FileAPI:迭代目录?
Firefox 3.6 让您将目录拖放到某个元素上(使用 Drag And Drop API)并使用FileAPI处理这些文件。这如何与目录一起使用?
Mac OS X Finder 将一些目录显示为文件(.app、.tmbundle、.abbu、...)。在大多数情况下,这很棒。在通过 File- 和 DND-API 与浏览器交互的情况下,它不是。最终用户无法区分真实文件和类似 my-addressbook-backup.abbu 的文件。
因此,Javascript UI 必须能够识别目录结构。如果它不能遍历结构,它必须相应地通知用户。
关于如何实现的任何想法?
编辑:
我可以看到允许 JS 遍历目录时出现的(潜在)问题。我并不是在要求目录遍历本身(尽管我不会绑定能够)。我说的是 Foo.app 被视为一个文件(就像用户通过 Finder.app 看到的那样),但实际上是一个目录(就像在 Terminal.app 中看到的那样)。
File API 目前不提供任何遍历机制。因此,无法访问 addressbook-dump.abbu 中更深层次的嵌套文件。有没有使这成为可能的想法?
否则,我必须告诉我的 OSX 用户将他们的地址簿文件存档(例如 ZIP)并“上传”该 zip(我实际上可以在 JS 中阅读)。虽然这是一种解决方法,但不是解决方案。
javascript - 文件 API:返回文件引用(对象)或整个文件内容(字符串)?
在 plupload (plupload.html5.js) 中,我看到了这段代码:
我想知道那个 blob 是否可以是一个字符串?正如我从源代码中看到的那样,blob 变量应该包含(我认为它应该包含)对用户选择的文件的文件引用,因此它表示如下:
从评论中我看到它可能会返回整个文件内容而不是对它的引用。怎么来的?
有什么我不明白的吗?
html - Google Chrome Base64 方法是否能够处理来自 File API 的二进制数据?
我将 btoa 和 atob 用于 Base64,但 atob 方法不适用于二进制数据!只是文字。我该如何解决这个问题?
其中 msg.bit.file.data 是 base64 编码文件。
javascript - 您可以在 Chrome 8 中写入文件吗?
我想知道,使用 Chrome 中公开的新文件 API(我目前不关心跨浏览器支持),是否可以写回通过文件输入打开的文件。
您可以在这里看到我正在尝试完成的示例:http: //www.grehz.com/ide。
我知道我可以使用服务器端脚本来动态创建文件并允许用户正常下载它们。我希望有一种方法可以完成这个纯粹的客户端。我在某处读过,您可以写入通过文件输入打开的文件。尽管我已经看到传递对 FileWriter 类的引用,但我找不到任何这样的示例。
如果这是不可能的,我完全不会感到惊讶(这似乎可能存在安全问题)。只是寻找一些指导或资源。
更新:
我在这里阅读:http: //dev.w3.org/2009/dap/file-system/file-writer.html
当我在 Chrome 中玩耍时,看起来 FileSaver 和 FileWriter 没有实现,但 BlobBuilder 是。我可以在 BB 对象上调用 getBlob(),有没有什么方法可以在没有 FileSaver 或 FileWriter 的情况下保存它?
更新2:
我在 Chromium 项目中发现了这个问题:http ://code.google.com/p/chromium/issues/detail?id=65615&q=FileSaver&colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified %20所有者%20Mstone%20OS
所以很明显它还没有在任何版本中实现(但是,没有提到 FileWriter——尽管我相信 FileWriter 依赖于 FileSaver)。
远离这一点,我正在考虑使用服务器端解决方案。当用户单击保存时,textarea 的内容被发布到脚本,然后写入页面并以纯文本或任何适合用户下载的 mime 类型发回。还有其他建议吗?此解决方案适用于“另存为”,但作为通用保存按钮有点笨拙。
html - HTML5 文件 API - 可用性和能力
我刚刚在 File API 上做了一些阅读,现在我想知道几乎所有主流浏览器何时会支持它或已经支持它:
Firefox,自 3.6 起 Chrome,自 8.0 起
? 歌剧,IE?
这应该是基于 Flash 的上传器的继任者/替代品,如 plupload 或 sfwupload 吗?在这种情况下,它的优点和缺点是什么?
它是否能够可靠地处理 Blob(字节流)/文件,以便当 FileReader 读取输入流时,它是否具有与从文件系统加载的本机文件相同的一致性?我的意思是编码问题等。
用户提交文件后,我可以不受javascript限制地自由使用它吗?例如将文件保存到变量中,然后通过 XHR 发送?
我已经阅读了规范中的所有内容,但我想听听有经验的人的意见。我即将实现一个复杂的用户界面,并且使用 File API 在服务器端要做的工作会更少......
但我不确定我是否应该使用它,因为?歌剧,IE?