【问题标题】:Store a picture in a cookie将图片存储在 cookie 中
【发布时间】:2012-06-23 05:11:20
【问题描述】:

我想在他们的浏览器中存储我的用户的个人资料图片,以便他们每次登录时都可以看到他们的个人资料图片(在登录表单中)(例如,当他们勾选记住我时)。我认为 hotmail 正在做类似的事情。

是否可以将图像存储在用户计算机上并将路径存储在cookie中? cookie的最大大小似乎是4096 Bytes,因此可能很难存储图像本身在 cookie 中。你知道我该怎么做吗?

【问题讨论】:

    标签: html


    【解决方案1】:

    在 cookie 中存储指向在线图像的链接并使用它来代替确实更有效吗?

    每次浏览网页时,都会传输 cookie - 存储图像会增加不必要的带宽。

    【讨论】:

    • 每次传输图像都会增加不必要的开销 - 将其存储在 localStorage 中意味着不会发生这种情况。
    【解决方案2】:

    【讨论】:

    • 这太棒了!这样做的好处是可以在本地存储图像并减少网络和服务器的使用。剩下的问题是我们需要对二进制图像进行 base64 编码,但 php 似乎很容易做到这一点:base64_encode().
    • 缓存已在 HTTP 协议中使用了近二十年。为什么要重新发明它?使用标准的<img src="..."> 元素为您的图像文件发送一些缓存标头并将它们作为常规文件提供。
    • 听起来不错 :-) 你只能在 JS 中做到这一点吗? (对于我自己的项目)
    • 很遗憾,我不能同时接受这两个答案,但它们都是非常好的答案。我接受了投票最多的那个。我将发布两个答案的代码。感谢 Jasper 的精彩回答 :-)
    • 仅供参考,我们还可以在javascript中使用encoder script对二进制图像进行base64编码。
    【解决方案3】:

    您能否将图像的路径存储在 cookie 中并使用该值在登录屏幕中呈现它?

    【讨论】:

    • 你怎么能这样做?
    【解决方案4】:

    为什么你不想在服务器上存储图片而把路径存储在cookie中?

    这看起来更合适,然后在用户计算机上写入额外的数据......

    【讨论】:

    • 每次传输图像都会增加不必要的开销 - 将其存储在 localStorage 中意味着不会发生这种情况。
    • @Jasper Mogg 如果之前看到过图片,是否应该被浏览器缓存,因此无需额外传输
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2012-05-21
    相关资源
    最近更新 更多