cURL Загрузить Zip файл — & quot; Аргумент не является допустимым ресурсом File-Handle & quot;

Я пытаюсь загрузить zip-файл с сервера, который я размещаю, и сохранить его на другом сервере, используя PHP и cURL. Мой PHP выглядит так:

set_time_limit( 0 );
$ci = curl_init();
curl_setopt_array( $ci, array(
CURLOPT_FILE    =>  '/directory/images.zip',                // File Destination
CURLOPT_TIMEOUT =>  3600,                                   // Timeout
CURLOPT_URL     => 'http://example.com/images/images.zip'   // File Location
) );
curl_exec( $ci );
curl_close( $ci );

Всякий раз, когда я запускаю это, я получаю следующую ошибку на CURLOPT_URL линия:

Предупреждение: curl_setopt_array (): предоставленный аргумент не является допустимым ресурсом File-Handle в …

Если я посещу Расположение файла прямо в моем браузере, он загружает. Нужно ли передавать какую-то информацию заголовка, чтобы он знал, что это zip-файл? Есть ли какой-то способ, которым я могу отладить это?

4

Решение

Ваша проблема в том, что вы должны передать файловый дескриптор CURLOPT_FILE, а не путь к файлу. Вот рабочий пример

$ci = curl_init();
$url = "http://domain.com/images/images.zip"; // Source file
$fp = fopen("/directory/images.zip", "w"); // Destination location
curl_setopt_array( $ci, array(
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 3600,
CURLOPT_FILE => $fp
));
$contents = curl_exec($ci); // Returns '1' if successful
curl_close($ci);
fclose($fp);
13

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]