我正在开发一个基于 Web 的应用程序,该应用程序可能会在 Internet 连接不稳定的环境中使用。我将它实现为一个 HTML5 离线应用程序,它将利用 HTML5 本地存储(实际上是 jQuery 插件 jStorage)。它是一个数据输入驱动的应用程序,因此离线时创建的所有新条目都保存在本地存储中,并在稍后重新建立 Internet 连接时与服务器同步。我几乎完成了这项工作,但现在我面临一个要求,即用户实际上需要上传图像以及数据输入提交。
我找到了这个 HTML5 API 规范 - http://www.w3.org/TR/file-upload/其中谈到文件上传和离线访问。在我深入探讨之前 - 是否有围绕此功能的任何包装器可以为我简化它?
我也刚刚找到这篇文章 - http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/它利用了一个公开可用的 TwitPic API,我想得到一些来自这里的人的专业反馈。
谢谢!
3 回答
我知道我问这个问题已经有一段时间了,但我仍然看到这个问题被收藏和赞成,所以我想我会分享我最终是如何解决这个问题的。在我的情况下,文件不是那么大,所以我只是决定对它们进行 MIME 编码,然后将字符串存储在 HTML5 localStorage 中。它是一种魅力。
我前段时间写了一篇关于 HTML5 文件 API 的文章 - http://speckyboy.com/2012/10/30/getting-to-grips-with-the-html5-file-api-2/
另请参阅 GitHub 存储库 - https://github.com/mailru/FileAPI以获得高级控制。
我认为这不是localStorage
正确的答案,因为localStorage
仅保存字符串并且有 5 兆字节的存储限制。
我建议类似http://pouchdb.com
但是如果你坚持localStorage
,那么 Mozilla Hacks 有一篇关于将图像存储在的文章:http localStorage
:
//hacks.mozilla.org/2012/02/saving-images-and-files-in-localstorage/
indexedDB
可能是存储文件的更好地方:http:
//hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/