动态调整图片与PHP和保护他们从直接原始大小访问


Dynamically Resize Images with PHP and Protect them from Direct Original Size Access

考虑库存图片。你有一个全尺寸的原件,只能在购买后下载。您只希望在服务器上有一次完整尺寸的图像。但是你想在不同的地方以较小的尺寸显示该图像(在移动设备上也会相应地缩小)。

我已经有了这个拼图的各个部分,但还没能让它们一起工作:

使用TimThumb或CImage,我可以调整图像的服务器端大小,使用jQuery,我可以根据用户的屏幕大小动态更改图像源。

使用PHP和.htaccess,我可以将图像文件放在webroot之外,并将包含图像名称的欺骗URL路由到PHP文件,该PHP文件将读取实际图像并发送带有图像数据的头。好。

但是TimThumb和CImage使用真实的图像URL,它们测试以确保给定的URL是图像的实际文件路径。

如果我可以发送实际的图像数据到图像调整脚本,而不是URL到图像,它应该从那里工作。由于PHP脚本将读取图像数据,因此我可以在读取之前检查用户是否获得了正确的凭据。

有没有其他的解决方案,你可以想到除了黑客TimThumb或CImage或编写我自己的自定义图像调整脚本?

谢谢

我突然想到了答案。

使用.htaccess,通过图像处理脚本路由所有图像。在图像处理脚本的第一行,我将包含我自己的自定义脚本。我的自定义脚本将根据实际图像检查GET参数,以确定用户是否有凭据,可以按照请求的大小为所请求的图像提供服务。

如果是,让图像处理脚本继续,如果不是,退出或更改GET参数,使图像处理脚本提供占位符图像。

瞧!