远程图像服务器提供的文件与getimagesize访问的文件不同

时间:2013-06-27 21:03:37

标签: php image remote-server

我有一个网站,我检查图像大小,以便调整周围的各种HTML元素。图像URL通过数据传入并远程托管,因此我事先不知道图像尺寸。我正在使用getimagesize,这似乎工作正常(虽然很慢),但现在我看到的情况是我从getimagesize回来的图像尺寸不是我实际上最终获得的图像文件的尺寸。图像URL不直接指向文件,而是指向提供图像的脚本,因此我假设所提供的图像文件在getimagesize检查和实际下载之间发生变化。

有没有人处理过这个问题?是否有任何服务器端解决方案可以获得正确的尺寸,或者我需要在图像加载后转到JS解决方案? 布赖恩

3 个答案:

答案 0 :(得分:0)

更好的方法不是设置image.onload,这样一旦加载图像,你就可以获取实际图像大小然后调整页面吗?

答案 1 :(得分:0)

您可以将图像文件下载到临时文件,然后在文件上调用getimagesize()

虽然根据documentation中的一条评论,这基本上是getimagesize($url)的工作方式。所以我不确定你为什么会得到不同的尺寸。如果图像文件正在快速变化,那么您的PHP脚本似乎没有任何方法可以获得浏览器将看到的大小,因此您必须使用在图像之后运行的Javascript中的解决方案加载。

答案 2 :(得分:0)

在数据中传递的图片网址包含HTML实体,这些实体由getimagesize和实际图片下载区别对待。