0
我查了一下,也搜索了一下,但没有找到任何方法来解决我的问题。php curl下载tbz文件?
我想下载与TBZ扩展名的文件,但它给我的错误作为
Warning: feof() expects parameter 1 to be resource, string given in D:\xampp\htdocs\test\testing.php on line **
我使用卷曲从服务器下载该文件。
set_time_limit(0);
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $webpage_url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$handler = curl_exec($ch);
$fp = fopen("adminArea/test/$file", "w+");
$contents = '';
while (!feof($handler)) {
$contents .= fread($handler, 8192);
fwrite($fp, $handler);
}
fclose($fp);
curl_close($ch);
我的文件是MB,当我执行这个我得到一个更大的文件。如果我运行代码时我的文件大小是16m,那么需要很多时间,当我手动停止它时,它的大小为146MB。我做错了什么?
感谢您的回复。我之前尝试了相同的代码,但是这只在我的目录中创建了1KB的文件。所以我想做文件处理的方式。这段代码只为我创建一个1KB的文件,而不是实际的大小。 – Astha
我怀疑文件处理会弄乱你的文件 - 更可能的是,外部服务器发送1KB响应,而不是你所期望的。许多可能的原因,例如,这会将用户重定向到实际文件,或者该站点需要POST请求,或者该站点需要特定的User-Agent标头等。 检查此文件的内容以查看是否可以从中收集任何东西。 – zinga