html5离线缓存,我要做一个图片上传功能,在用户拍完照后如果网络不好就进行缓存,怎么做

html5离线缓存,我要做一个图片上传功能,在用户拍完照后如果网络不好就进行缓存,怎么做,第1张

HTML5的离线web应用允许我们在脱机时与网站进行交互。这在提高网站的访问速度和制作一款web离线应用上(如HTML5游戏)有很大的使用价值。

先来了解一下HTML5应用程序缓存和浏览器缓存的区别。

(有些)浏览器会主动保存自己的缓存文件以加快网站加载速度。但是要实现浏览器缓存必须要满足一个前提,那就是网络必须要保持连接。如果网络没有连接,即使浏览器启用了对一个站点的缓存,依然无法打开这个站点。只会收到一条错误信息。而使用离线web应用,我们可以主动告诉浏览器应该从网站服务器中获取或缓存哪些文件,并且在网络离线状态下依然能够访问这个网站。

canvas画布保存为图片

function convertCanvasToImage(canvas) {

  var image = new Image()

  image.src = canvas.toDataURL("image/png")

  return image

canvas参数为你的canvas对象,返回一个图片对象,你可以将这个image放到网页结构中,如果要保存图像,可以将canvas.toDataURL("image/png")返回的base64格式的图片数据放到input(type=hidden)中,用户点击上传按钮(或设置表单自动提交),将base64格式的数据上传

形如:

data:image/pngbase64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABbSURBVDhPY8AFMvJL/oMwlEs8yMgvJVcjyMbSYaERogCC0/OAGIkPwaVQMUhgQWiggWANIAzUhKoBpgjdMIhBUHsxAdxkUgHMBiiXeDAQNkICAsolHuC3kYEBAG/wdxC2W2tUAAAAAElFTkSuQmCC

服务器端接收到字符串(以上字符串可以直接在浏览器中打开,IE低版本就算了,能用canvas的浏览器都可以)后根据data:image/png得知应该保存的文件类型扩展名(png),然后将base64,后面的base64编码字符串解码(后端语言实现,如PHP用base64_decode()函数),将解码后的二进制数据以二进制的形式保存到服务器上(图片形式)

如果存数据库,可以直接存base64编码,读取时候解码也行,图片建议以文件形式存储,数据库不适合存大文件

我之前有做过这个应用,这不难

首先,在 canvas 生成你要的图片时,你要用 js 先暂存起来

最后生成一张实体图片,用 ajax 方式推送到服务器来保存图片

你可以私信我询问详细


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7221748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存