你能使用PHP内置的Curl函数设置最大文件下载大小吗?

4

当从命令行使用Curl时,您可以使用以下命令将下载的文件大小限制为250kb:

curl 'http://www.domain.com' --max-filesize 250000

我使用PHP的curl_init()curl_setopt()时找不到设置选项。我是否漏掉了什么?

你可能会对这个讨论感兴趣:http://curl.haxx.se/mail/lib-2008-09/0219.html - hakre
1
我在curl_setopt文档中也没有看到它。您可以使用curl_setopt($ch, CURLOPT_NOBODY, true);发出请求并读取Content-Length标头,然后仅在Content-Length小于您的最大值时进行第二个请求以下载。这不是绝对可靠的方法。 - Frank Farmer
2个回答

5
你可以使用回调函数-
CURLOPT_READFUNCTION 传递一个函数,该函数将被调用以读取数据。回调函数的原型:
string read_callback (resource ch, resource fd, long length)

ch参数是CURL会话句柄。fd参数是通过CURLOPT_INFILE选项传递给CURL的文件描述符。length参数是可以返回的最大长度。

该函数必须返回包含读取数据的字符串。如果数据的长度超过了最大长度,它将被截断为最大长度。返回除字符串以外的任何内容都意味着EOF。

请参见curl_setopt


0

使用PHP内置的curl函数无法完成此操作,必须向托管文件的Web服务器发出单独的请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接