是否可以在离线Web应用程序中上传图像?

时间:2012-10-24 01:37:25

标签: javascript html5 web-applications file-upload offline

我正在寻找的是一种在离线网络应用程序中“上传”图像的方法。我希望有一种方法可以将所选图像存储在缓存中,然后在再次访问Internet时上传它。这样的事情可能吗?

4 个答案:

答案 0 :(得分:6)

您可以使用HTML5 FileSystem存储图像文件,它在许多浏览器中实现,而不是所有浏览器。然后,您可以使用HTTP POST消息将图像文件上传到服务器。并且,当通过HTTP上传时,以Base64格式编码图像文件是安全的。

要查看互联网连接,您可以使用XMLHTTPRequest。

答案 1 :(得分:2)

  

这样的事情可能吗?

...适用于小文件。

您可以使用HTML5 File API加载文件数据,并通过AJAX将其发布到服务器。没有连接将返回HTTP状态代码,可用于触发某种存储机制。

localStorage的限制大约为5MB,这就是我说“小文件”的原因。

Web SQL Databases可能能够存储更多数据,但不再对其进行维护:

  

当心。此规范不再处于活动维护状态,Web应用程序工作组不打算进一步维护它。

TL; DR:

如果您尝试缓存小图片或文本文件,则可以在本地存储它并轮询互联网连接。

如果您尝试允许用户上传Tolstoy,您应该让他们等到他们有一个活跃的互联网连接。

答案 2 :(得分:1)

最接近达到此效果的是,如果Web应用程序提供在客户端上安装并运行的某种客户端程序

然后,本地客户端会考虑上传特定文件的任何请求(无论是将这些文件复制到缓存还是仅记录文件位置以供将来访问),然后继续尝试将每个此类文件有效地发送到服务器当它重新可用时。

这只是一个技巧,因为绝对不能与服务器进行交互(从客户的角度来看)当它离线时

答案 3 :(得分:0)

您可能尝试使用Java applet。它可以在客户端运行。因此,您可以编写一些代码,以便在以后上传图像之前将图像存储在某处。