Skip to content

Instantly share code, notes, and snippets.

@tiye
Created May 20, 2012 10:58
Show Gist options
  • Select an option

  • Save tiye/2757649 to your computer and use it in GitHub Desktop.

Select an option

Save tiye/2757649 to your computer and use it in GitHub Desktop.
从浏览器写入文件的可能性

此前有一次 P2P 文件分享的尝试, 结果浏览器操作本地文件是难点.
想法是借助 Node 转发文件流, 先用 socket.io 完成最开始的交互,
然后用 API 读取本地文件的内容, 接着文件可以被传送到接收者.
不过将文件存储下来是个问题, 而且搜索到的 API 也没有在浏览器完成.
今天再搜了下, 记一下当前对这个问题的理解:

不确定的一个方案是用 Chrome extension 完成存储的过程, 大概不会用:
http://stackoverflow.com/questions/8368745/is-it-possible-for-a-chrome-extension-to-write-to-a-file-in-chromes-system-dire

FileSystem API 是写在沙箱里的, 我被误导多次, 这不能操作我想要的文件.
http://www.html5rocks.com/en/tutorials/file/filesystem/


但是看到这里 FileSaver 的 Demo 页面, 我觉得有点希望: http://eligrey.com/demos/FileSaver.js/ 按照 Github 页面上写的, 是到一个没有实现的 saveAS API 的模拟实现 https://github.com/eligrey/FileSaver.js 看文档给的例子只有文本和 canvas 的, 不清楚对文件能不能实现...

然后看到有博文提到上边操作的细节, 用了 URL, 我还看不懂:
http://www.keakon.net/2011/10/20/用JavaScript读取和保存文件
提到说还是一组 API 在浏览器环境没获得支持的原因, 具体文档:
http://www.w3.org/TR/file-writer-api/
API 没完成的时候真是无计可施了, 毕竟文件分享失去了浏览器的便利.

另外就是早期看到的 DirtyShare 的实现, 得想法看懂代码才好啊.
http://club.cnodejs.net/topic/4f8f54f8407edba21416cf60

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment