我们有一个 Laravel 应用程序,并设想以下情况:我们有一个带有播放按钮的滑块,它将开始在幻灯片中显示图像。这些图像来自网络摄像头,因此显然有很多图像。页面的加载时间非常糟糕,因为它试图加载所有图像,而且通常,甚至 PHP 也会在尝试加载所有图像时耗尽内存。现在,我可以增加 PHP 的内存量和执行时间以继续执行此操作,但有没有更复杂的方法来根据我在哪里滚动滑块或按下播放按钮来加载这些图像?
另外,要记住一件事:显示图像是在身份验证系统后面进行的,因此不是任何人都可以观看任何摄像头。这取决于规则和用户设置等...
答案1
这些静态图像是否存储在文件系统上,而您只使用 PHP 来授权访问它们?在这种情况下,不要让 PHP 提供图像file_put_contents()
或类似的东西。相反,在您授权用户后,使用 nginx 的X-Accel-Redirect
告诉 PHP 前面的 nginx Web 服务器提供静态文件。(Lighttpd 有类似的功能X-发送文件Apache 没有内置这样的功能,但是第三方模块存在。