PHP动态图像
我接管了一个动态生成调整大小的图像和缩略图的CodeIgniter
PHP站点.
以下是网站中img标记的示例,该标记生成100px x 100px缩略图: <img src="/media/image/ImageName.jpg/100/100" /> 这是通过使用帮助程序生成的: echo img('media/image/ImageName.jpg/100/100'); 媒体控制器中的图像功能中存在一些逻辑,它首先检查缓存文件夹,然后提供缓存的图像(如果存在). 看起来这仍然不是一种优雅的方法,并且看看像SilverStripe这样的其他PHP框架的做法,做这样的事情会更好: echo img_link('ImageName.jpg',100,100); 帮助器中的这个新的img_link函数将首先检查缓存的图像,并将链接直接写入图像文件或生成新图像并将直接链接传递给html. 我的想法是,如果PHP使用这种类型的代码服务每个img $this->output->set_content_type('jpeg')->set_output(file_get_contents($file_path)); 它永远是低效的. 想什么? 解决方法
我同意,我已经完成了你提出的建议(如果已经缓存,则直接编写链接)并且它工作正常.
唯一一次我认为你会被抓住是因为你的html被缓存并且你已经删除了缓存的图像,所以现在已经破坏了到imagefile的直接链接. 在我的情况下,我从来没有删除缓存的图像,所以还没有打动. 我可以看到它是一个问题的唯一其他情况是你有私人图像.在这种情况下,php需要在显示图像之前先检查谁拥有权限,你不能只是将缓存的文件作为直接链接提供,因为人们可以共享该直接链接,并且安全性将不再适用. 如果你确实需要这样做,并且你能够在apache上安装模块(假设你使用的是apache),那么有一个模块“x-sendfile”可以让你将文件传递过程切换回apache,而不是通过PHP.这适用于php可能超时的大文件等 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |