我有一个从提供的网址获取图片的功能,例如将用户的图像下载到images文件夹以供进一步参考。以下是功能:
public function _get_image_from_url($url)
{
$image_name = $this->uuid->v4().'.jpg';
$file_extension = strtolower(substr(strrchr($image_name, '.'), 1));
$path = APPPATH.'../assets/uploads/images/';
$ch = curl_init($url);
$fp = fopen($path.$image_name, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, true);
switch( $file_extension ) {
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpeg"; break;
default:
}
$headers = array(
'Content-type: '.$ctype,
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
fclose($fp);
return $image_name;
}
注意:我正在使用CI 3和uuid库生成文件名,该名称将保存到数据库中。我已经确认在远程服务器上启用了curl并且文件权限很好。
问题:该功能在本地计算机(Linux)上运行,但在远程服务器(共享主机)上执行时,保存的文件为空(由于某种原因,文件类型为'jpeg-file')
有关解决为什么远程服务器上的执行无法正确下载图像的任何帮助都将非常感激。