将图片存储在 cookie 中
Posted
技术标签:
【中文标题】将图片存储在 cookie 中【英文标题】:Store a picture in a cookie 【发布时间】:2012-06-23 05:11:20 【问题描述】:我想在他们的浏览器中存储我的用户的个人资料图片,以便他们每次登录时都可以看到他们的个人资料图片(在登录表单中)(例如,当他们勾选记住我时)。我认为 hotmail 正在做类似的事情。
是否可以将图像存储在用户计算机上并将路径存储在cookie中? cookie的最大大小似乎是4096 Bytes,因此可能很难存储图像本身在 cookie 中。你知道我该怎么做吗?
【问题讨论】:
【参考方案1】:在 cookie 中存储指向在线图像的链接并使用它来代替确实更有效吗?
每次浏览网页时,都会传输 cookie - 存储图像会增加不必要的带宽。
【讨论】:
每次传输图像都会增加不必要的开销 - 将其存储在 localStorage 中意味着不会发生这种情况。【参考方案2】:使用 javascript 将其存储在 localStorage 中。
https://web.archive.org/web/20160313121817/https://www.ibm.com/developerworks/mydeveloperworks/blogs/bobleah/entry/html5_code_example_store_images_using_localstorage57?lang=en
【讨论】:
这太棒了!这样做的好处是可以在本地存储图像并减少网络和服务器的使用。剩下的问题是我们需要对二进制图像进行 base64 编码,但 php 似乎很容易做到这一点:base64_encode(). 缓存已在 HTTP 协议中使用了近二十年。为什么要重新发明它?使用标准的<img src="...">
元素为您的图像文件发送一些缓存标头并将它们作为常规文件提供。
听起来不错 :-) 你只能在 JS 中做到这一点吗? (对于我自己的项目)
很遗憾,我不能同时接受这两个答案,但它们都是非常好的答案。我接受了投票最多的那个。我将发布两个答案的代码。感谢 Jasper 的精彩回答 :-)
仅供参考,我们还可以在javascript中使用encoder script对二进制图像进行base64编码。【参考方案3】:
您能否将图像的路径存储在 cookie 中并使用该值在登录屏幕中呈现它?
【讨论】:
你怎么能这样做?【参考方案4】:为什么你不想在服务器上存储图片而把路径存储在cookie中?
这看起来更合适,然后在用户计算机上写入额外的数据......
【讨论】:
每次传输图像都会增加不必要的开销 - 将其存储在 localStorage 中意味着不会发生这种情况。 @Jasper Mogg 如果之前看到过图片,是否应该被浏览器缓存,因此无需额外传输以上是关于将图片存储在 cookie 中的主要内容,如果未能解决你的问题,请参考以下文章