在PHP上传图像时剥离元数据

Kdg*_*Dev 3 php metadata file-upload vbulletin

我知道的某个网站最近将他们的带宽从每月2,5 TB升级到3,5 TB.

原因是他们最近超过了2.5的限制.他们抱怨他们不知道如何降低带宽使用率.

我没有看到他们考虑的一件事是,JPEG和网站上显示的其他图像(它是一个图像密集的网站)可以包含元数据.照片拍摄的地方等等.

事实是,这些信息在该网站上并不重要.它永远不会被使用.然而它仍然增加了带宽,因为它将每个图像的文件大小从几个字节增加到几千字节.

在一个每月耗费超过2.5 TB的网站上,剥离数千个元数据图像将有助于减少每月至少几千兆字节的带宽使用量,如果不是更多的话.

那么在PHP中有没有办法做到这一点?而且,对于所有现有文件,是否有人知道一个好的自动元数据删除器?我知道JPEG和PNG剥离器,但这不是很好......虽然可以用于初始清洁......

Emi*_*l H 6

对GD来说这是微不足道的:

$img = imagecreatefromjpeg("myimg.jpg");
imagejpeg($img, "newimg.jpg", $quality);
imagedestroy($img);
Run Code Online (Sandbox Code Playgroud)

这不会传输EXIF数据.但是,不知道它实际会节省多少带宽,但您可以使用上面的代码来增加图像的压缩率.这样可以节省大量带宽,尽管它可能不会很受欢迎.


Jul*_*urg 5

我严重怀疑图像元数据是这里所有邪恶的根源.

需要考虑的一些问题:

  • 如何配置网络服务器?
  • 它是否正确发出了http 304响应?
  • 是不是有某种手工制作的缓存/数据流通过php脚本来防止所述数据被浏览器缓存?(在这种情况下,应该考虑URL重写和http重定向).