有许多 相似 问题 to 这,但都涉及对本地文件执行stat()或filesize(),因为需要完整的路径,这些文件无法工作。
这个问题是不同的,因为我有少量的远程图像,它们都有完整的路径,而且我仍然无法检索它们的大小。下面是一个示例:
stat("https://cdn-img.health.com/sites/default/files/1532113674/1-opener-sleep-a-z-GettyImages-485559412.jpg");这会引发一个错误,说明"stat失败“。我也无法从filesize()函数中获取图像大小,无法检索“内容长度”或“X-原始内容-长度”标题(未传递),也无法对图像进行卷曲并检索CURLINFO_CONTENT_LENGTH_DOWNLOAD字段。类似地,在Ruby中,除了机械化库外,我无法用传统的方法获得这个图像的大小,这个库只是起作用。下面是示例中图像的标题:
HTTP/1.1 200 OK
Content-Type: image/jpeg
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=1800
Date: Fri, 03 Aug 2018 14:08:39 GMT
ETag: "90c755-5717304f98380-gzip"
Expires: Fri, 03 Aug 2018 14:38:39 GMT
Last-Modified: Fri, 20 Jul 2018 19:08:22 GMT
P3P: CP='PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA PRE CUR ADMa DEVa TAIo PSAo PSDo IVAo IVDo CONo TELo OTPi OUR UNRo PUBi OTRo IND DSP CAO COR'
Server: Apache
TI-Varnish-Age: 0
Via: 1.1 varnish, 1.1 ba150248cd293ea895c35304503c9f27.cloudfront.net (CloudFront)
X-Varnish: 1920400558
Vary: Accept-Encoding
Age: 19
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: pKXUfsB5egUfk4Te7oxIG7TgFLoUfMSUWqGZxd5822_ejvorITbFsg==有什么建议吗?
发布于 2018-08-03 14:54:06
您可以通过以下操作获得大小:
strlen(file_get_contents('http://link.of/image.jpg'));只要您启用了allow_url_fopen,它就能工作。否则,您需要使用cURL。
发布于 2018-08-03 14:52:58
发布于 2018-08-03 15:02:33
您可以使用curl获取文件信息,如果您想在任何url处获取任何文件的大小,请使用以下函数:
function getFileSizeByCurl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
return curl_getinfo($ch, CURLINFO_SIZE_DOWNLOAD);
}
//Calling a function
echo getFileSizeByCurl('https://cdn-img.health.com/sites/default/files/1532113674/1-opener-sleep-a-z-GettyImages-485559412.jpg');https://stackoverflow.com/questions/51674784
复制相似问题