2013-02-19 4 views
1

Каков правильный способ загрузки, например, 50+ файлов PDF с использованием PHP curl?PHP Curl скачать PDF-файлы

Ниже приведен код, я использую:

$fp = fopen("test.pdf", 'w');   
$ch = curl_init(); 

curl_setopt($ch,CURLOPT_PROXY,"http://test:123"); 
curl_setopt($ch,CURLOPT_PROXYPORT,123); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 500); 
curl_setopt($ch,CURLOPT_URL,"http://download/test.pdf"); 
curl_setopt($ch, CURLOPT_FILE, $fp); 

curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

Проблема иногда, 2-3 PDF файлы не правильно загружены (0-1 байт). Любая идея, почему она нестабильна? Должен ли я включать что-либо еще в код выше?

Заранее спасибо

ответ

0

веб-запросов в целом может быть довольно хитроумный даже из браузера и хорошей связи. Здесь может быть несколько ошибок с удаленного сайта, отказавшего в подключении, одновременного выполнения вашего php-файла из нескольких мест. Посмотрите:

http://www.php.net/manual/en/function.curl-error.php

, чтобы попытаться напечатать сообщения об ошибках где-то для анализа на curl_exec.

Если это что-то вроде проблемы с подключением, вам может потребоваться ввести механизм повторной попытки. Не уверен, что ваш скрипт, вероятно, будет выполняться параллельно из нескольких местоположений, но если это так, вы должны посмотреть на http://php.net/manual/en/function.uniqid.php как средство для создания достаточно уникального имени файла сначала, попробуйте загрузить, затем только переместите файл в целевой файл назначения, если ошибка не возвращается, в противном случае повторите попытку до X раз.

Что касается стабильности Curl, я часто использую его, и он не доказал себя неустойчивым для меня, но я не сбрасываю двоичные данные. Я надеюсь, что обнаружение ошибок и вывод сообщений об ошибках могут пролить свет на то, что здесь является основной причиной.

Смежные вопросы