我试图点击一个返回二进制数据并用于保存文件的 url。当我尝试使用 file_put_contents 文件被生成但内容为空或文件说它已损坏。
$url_call = 'http://someurl.com/file/15646';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url_call);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER,0);
$response = curl_exec($ch);
curl_close($ch);
file_put_contents('/data/testingdirect.pdf', $response);
我知道那里有很多类似的问题,iv 查看了所有问题并尝试了它们,但它们都返回相同的结果,即损坏或空文件。
我知道该文件很好,因为我实际上可以自己直接在服务器上访问该文件并看到它很好。
还有一种方法可以让我确定文件类型或内容类型,以了解如何保存 pdf 或 jpeg 或其他文件。?
将卷曲重写为:
$fp = fopen ('/data/testingdirect.jpg', 'w+');
$ch=curl_init();
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_URL, $url_call);
curl_setopt($ch, CURLOPT_HEADER,0);
$response = curl_exec($ch);
curl_close($ch);
fclose($fp);
同样的事情还在发生。