你能在PHP会话中存储图像吗?
我有一个在我的网站上使用PHP的多步骤注册过程。在其中一个步骤中,用户可以上传他们的公司徽标(图像)。
最后一步是处理他们的信用卡。
因此,在我将任何图像写入web服务器和图像位置到数据库之前,我想确保他们的信用卡是有效的和正在处理的。
因此,是否可以将图像数据临时存储在会话变量中?
如果没有,在提交图像数据之前,人们如何在表单上临时存储图像数据?
发布于 2009-04-15 23:31:03
您只能预期会话的内存使用量会随着图像的大小而增加。为此,必须将文件内容保存到会话变量中。
如果它在会话数据中,并且在上传之后有多个步骤,则图像将在每个页面视图中重新加载(到会话中),直到这些步骤完成。
我个人建议不要使用会话来保存二进制文件。将磁盘上的图像保存到临时位置,直到注册完成。我只会在会话中保存临时文件的路径。当transaciton完成后,将其移动到适当的位置,并执行数据库插入。
而且,在本质上,会话数据无论如何都存储在磁盘(或数据库)上,所以您最好保存一次映像文件,然后在完成后发出移动命令。
发布于 2009-04-16 08:45:53
我会将文件保存到磁盘,您甚至可以使用用户的会话id对其进行命名。然后可能会有某种清理脚本,它作为cron作业运行,并删除从未成功付款的人的图像。
如果您尝试在会话中存储图像,那么您就做错了。
发布于 2009-04-15 23:37:16
上载文件时,会在$_FILES数组中为其分配一个临时名称。我不知道这些文件的确切生命周期,但您也许能够在会话中捕获该名称,并将move_uploaded_file()调用推迟到CC验证之后。
或者,您可以先执行CC步骤。
https://stackoverflow.com/questions/754145
复制相似问题