PHP - 将图像存储在会话数据中?

2022-08-30 20:29:53

你能在PHP会话中存储图像吗?

我在我的网站上使用PHP进行了多步骤注册过程。在其中一个步骤中,用户可以上传其公司徽标(图像)。

最后一步是处理他们的信用卡。

因此,在我将任何图像写入Web服务器并将图像位置写入数据库之前,我想确保他们的信用卡有效并进行处理。

因此,是否可以将该图像数据临时存储在 SESSION 变量中?

如果不是,那么在提交数据之前,人们如何暂时将图像数据存储在表单上?


答案 1

您只能期望会话的内存使用量增加,具体取决于图像的大小。为此,必须将文件内容保存到会话变量中。

如果它位于会话数据中,并且您在上传后有多个步骤,则图像将重新加载(到会话中)每个页面视图,直到步骤完成。

我个人建议不要使用会话来保存二进制文件。将磁盘上的映像保存到临时位置,直到注册完成。我只会在会话中保存临时文件的路径。转座完成后,将其移动到适当的位置并进行数据库插入。

此外,从本质上讲,会话数据存储在磁盘(或db)上,因此您最好保存一次图像文件,然后在完成后发出移动命令。


答案 2

我会将文件保存到磁盘,您甚至可以使用用户的会话ID命名它。然后可能会有某种清理脚本,它作为cron作业运行,并删除从未成功付款的人的图像。

如果您尝试在会话中存储图像,则操作错误。


推荐