[英]PHP CURL Download File
我试图从 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);
网址示例: 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);
您的网址使用 https 连接。 也使用以下 curl 选项。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
fputs
,您需要指定字节长度file_put_contents($destination, $data);
看看是否可以使用以下代码来帮助您。
//创建一个cURL句柄。 $ch = curl_init($fileUrl);
//将我们的文件句柄传递给cURL。 curl_setopt($ch, CURLOPT_FILE, $fp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.