我正在用PHP构建一个多页面的表单。我将大部分值存储在$ _SESSION中。使用以下方法...
$_SESSION['title'] = $_POST['title'];
到目前为止工作正常,但我不确定它是否能够保存PDF,视频等。
$ _SESSION只包含字符串& intigers,或文件存储在那里?
答案 0 :(得分:7)
$ _SESSION的最大大小是PHP脚本允许的最大内存,但如果你达到1/3,你可能会做错了。
$_SESSION
通常只应用于保留用户对大多数网站页面浏览量所需的信息。 高度不太可能,您实际上需要在每个页面上都有一个文件。
这是一个更好的选择,将临时文件存储在磁盘上并在$_SESSION
中分配临时文件的路径。然后,当您需要它时,将文件读给用户。
答案 1 :(得分:5)
我建议您不要存储大值,因为此信息存储在您的服务器中。如果要保留对这些文件的引用,则应序列化包含这些文件路径的PHP对象。
编辑:
会话在运行时加载到内存中,因此理论上它受php.ini中memory_limit
的限制。
答案 2 :(得分:2)
我不确定您是否能够将整个文件存储到$ _SESSION中,但您可以将文件上传到服务器并仅存储该文件的路径。
答案 3 :(得分:1)
默认情况下,会话存储为服务器上的文件。唯一的限制是PHP脚本内存限制 - 例如64MB,可以控制。文件可以以二进制和文本格式存储,但我会质疑是否需要这样做 - 毕竟,为什么要这样做?
答案 4 :(得分:1)
你可以在理论上讲述会话变量中的二进制数据,但它不会被视为最佳实践。
此外,如果您打算在会话中存储大数据,您可能需要阅读: Maximum size of a PHP session
你真的需要生成一个ID,并且最好在你去的时候与其他表单元素响应一起存储在数据库中。
答案 5 :(得分:0)
$_SESSION
存储在服务器上的php.ini
只要您的服务器有空间,您就可以在$_SESSION