我正在寻找的是一种在离线 Web 应用程序中“上传”图像的方法。我希望有一种方法可以将所选图像存储在缓存中,然后在他们再次访问 Internet 时上传。这样的事情可能吗?
4 回答
您可以使用 HTML5 FileSystem 来存储图像文件,它已在许多浏览器中实现,但尚未全部实现。然后您可以使用 HTTP POST 消息将图像文件上传到服务器。并且,通过 HTTP 上传时,将图像文件编码为 Base64 格式是安全的。
要检查 Internet 连接,您可以使用 XMLHTTPRequest。
这样的事情可能吗?
是的
...对于小文件。
您可以使用HTML5 File API加载文件数据,并通过 AJAX 将其发布到服务器。没有连接将返回一个 HTTP 状态代码,可用于触发某种存储机制。
localStorage
有大约 5MB 的限制,这就是我说“小文件”的原因。
Web SQL 数据库可能能够存储更多数据,但不再对其进行维护:
谨防。该规范不再处于积极维护中,Web 应用程序工作组也不打算进一步维护它。
tl;博士:
如果您尝试缓存小图像或文本文件,可以将其存储在本地并轮询互联网连接。
如果您试图允许用户上传 Tolstoy,您可能应该让他们等到他们有一个有效的互联网连接。
最接近实现此效果的方式是,Web 应用程序提供了某种客户端程序,该客户端程序安装并运行在客户端上。
然后,此本地客户端将考虑上传特定文件的任何请求(无论是将这些文件复制到缓存还是简单地记下文件位置以供将来访问),然后继续尝试有效地将每个此类文件发送到服务器,当它变成重新可用。
这只是一个技巧,因为当服务器处于脱机状态时(从客户端的角度来看)绝对不可能与服务器交互。
您可以尝试使用 Java 小程序。它可以在客户端运行。因此,您可以编写一些代码,以便在稍后上传图像之前将图像存储在某处。