Файл загрузки PHP CURL

im пытается загрузить файл с URL-адреса, когда я использую браузер, диалог загрузки работает, но когда я использую этот код, новый файл на моем сервере остается пустым.

$ch = curl_init(); $source = "https://myapps.gia.edu/ReportCheckPortal/downloadReport.do?reportNo=$row['certNo']&weight=$row['carat']"; curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec ($ch); curl_close ($ch); $destination = "./files/certs/$row['certNo'].pdf"; $file = fopen($destination, "w+"); fputs($file, $data); fclose($file); 

пример URL: https://myapps.gia.edu/ReportCheckPortal/downloadReport.do?reportNo=1152872617&weight=1.35

Я решил эту проблему, используя это:

 curl_setopt($ch, CURLOPT_SSLVERSION,3); 

Это окончательный код:

 $source = "https://myapps.gia.edu/ReportCheckPortal/downloadReport.do?reportNo=1152872617&weight=1.35"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSLVERSION,3); $data = curl_exec ($ch); $error = curl_error($ch); curl_close ($ch); $destination = "./files/test.pdf"; $file = fopen($destination, "w+"); fputs($file, $data); fclose($file); 

Ваш URL-адрес с использованием https-соединения. Используйте следующий параметр curl.

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); 
  1. Вы проверяли, действительно ли результат содержит данные?
  2. с fputs на больших файлах вам нужно указать длину байта
  3. Попробуйте использовать file_put_contents($destination, $data);