【发布时间】:2011-07-04 22:05:47
【问题描述】:
我已经构建了我自己的教育 MVC 框架来了解更多关于 PHP OOP 的信息,我当然拥有,但目前我让自己陷入了困境。我需要在项目的大部分时间使用会话,但还需要在某个页面向用户流式传输文件。
当我在进入我的控制器之前默认调用session_start() 时,当我需要从控制器内部将文件流式传输给用户时,我会遇到臭名昭著的Headers already sent。很合乎逻辑。
当我在控制器中进行会话修改时,我需要事先调用 session_start(),但那时,控制器显然没有加载,我的框架无法判断它是否应该调用session_start() 与否。
使用不需要会话的控制器名称白名单创建文件似乎很原始。
当我需要流式传输文件时,什么是摆脱会话的合适方法?
【问题讨论】:
-
不确定我是否理解您为什么不能在每个相关文件的第一行中只写一个
session_start()? -
header_remove()在 mod_php 下可能工作也可能不工作。 -
@Pekka - 我相信最好为超越常规的东西制定解决方法,而不是相反。不是吗? :)
-
也许是我,但我还是不明白。您是否有压倒性的理由根据您的一个课程中的某些条件开始一个课程,而不是总是开始它?您不想在流式传输文件时开始会话吗?如果有,为什么?
标签: php session header stream filestream