Php 在接受作为上载之前获取远程图像尺寸?getimagesize()太慢
我一直在使用getimagesize()获取用户正在上载的图像的尺寸,然后检查是否有足够的内存来处理此图像。问题是getimagesize()在读取维度之前将文件下载到服务器。所以这是第22条。这一定是一个非常普遍的问题,但我还没有找到一个普遍的解决办法。有没有一种可靠的方法可以在不下载的情况下获取远程图像?发送一个Php 在接受作为上载之前获取远程图像尺寸?getimagesize()太慢,php,Php,我一直在使用getimagesize()获取用户正在上载的图像的尺寸,然后检查是否有足够的内存来处理此图像。问题是getimagesize()在读取维度之前将文件下载到服务器。所以这是第22条。这一定是一个非常普遍的问题,但我还没有找到一个普遍的解决办法。有没有一种可靠的方法可以在不下载的情况下获取远程图像?发送一个HEADHTTP图像请求。这将获得响应头,但不会发送实际的正文(图像) 然后,阅读这些标题并查找内容长度。这是一个以字节为单位显示图像大小的数字。使用它,您可以确定是否有足够的内存来
HEAD
HTTP图像请求。这将获得响应头,但不会发送实际的正文(图像)
然后,阅读这些标题并查找
内容长度
。这是一个以字节为单位显示图像大小的数字。使用它,您可以确定是否有足够的内存来处理图像,在这种情况下,您可以重复请求作为GET
(这是getimagesize()
基本上所做的)为图像发送头HTTP请求。这将获得响应头,但不会发送实际的正文(图像)
然后,阅读这些标题并查找内容长度
。这是一个以字节为单位显示图像大小的数字。使用它,您可以确定是否有足够的内存来处理图像,在这种情况下,您可以重复请求作为GET
(这就是getimagesize()
的基本功能)我也有同样的问题。据我所知,如果您需要维度,getimagesize()
是itI,我也有同样的问题。据我所知,如果您需要维度,getimagesize()
这是否也可以获得图像尺寸?@Kolink我也可以从该方法获得图像尺寸吗?与在.htaccess
文件中设置上载最大文件大小相比,该方法是否有任何优势?这不会提供以像素为单位的图像尺寸。不过,这是避免将12MB JPEG下载到服务器的良好第一步。一旦服务器上有了(足够小的)文件,其尺寸可能仍然太大而无法处理,但是之前没有办法知道。这也会得到图像尺寸吗?@Kolink我也能从该方法得到图像尺寸吗?这种方法比只在.htaccess
文件中设置upload\u max\u filesize
有什么优势吗?这不会给你以像素为单位的图像尺寸。不过,这是避免将12MB JPEG下载到服务器的良好第一步。一旦服务器上有了(足够小的)文件,它的尺寸可能仍然太大而无法处理,但是以前无法知道它。