我正在使用HighCharts并使用cURL保存图表的图像。它在我的localhost工作正常。但是当我在服务器上尝试相同的代码时,图像是空白的。在服务器error_log中,我发现了这条警告消息:
PHP Warning: imagecreatefromjpeg(): '10361254147.jpeg' is not a valid JPEG file in public_html/project/assign_img.php on line 34
我使用的代码如下:
$imgNm = 'https://export.highcharts.com/charts/chart.2ce468213abe432aa1c288339f90171e.jpeg';
$img = 'xyz.jpeg';
$ch = curl_init($imgNm);
$fp = fopen($img, "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
imagecreatefromjpeg($img);
不确定我错在哪里。
答案 0 :(得分:0)
如果您只想保存文件并在浏览器中显示,则不需要cURL:
$imgNm = 'https://export.highcharts.com/charts/chart.2ce468213abe432aa1c288339f90171e.jpeg';
$filename = 'xyz.jpeg';
$image_data = file_get_contents($imgNm);
file_put_contents($filename, __DIR__ . '/' . $imgNm);
在此之后,文件将保存在与脚本相同的目录中(名为“xyz.jpeg”),您可以以任何方式使用它
答案 1 :(得分:0)
I added a line for SSL verification to be false and the code worked fine for me.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Hope this help someone.