当前位置: 首页 » 笔记 » PHP下载远程图片到本地服务器

PHP下载远程图片到本地服务器

零分笔记2,7502023-02-01 23:45

最近在写一个东西,需要将远程的图片下载保存到本地服务器,测试了一段代码,已通过

function download($url, $save_dir = './______Images/upload/goods/',$filename=''){
$ext=strrchr($url,'.');
if(trim($save_dir)=='')
$save_dir='./';

if(trim($filename)==''){//保存文件名
$allowExt = array('gif', 'jpg', 'jpeg', 'png', 'bmp');
if(!in_array($ext,$allowExt))
return false;
// return array('file_name'=>'','save_path'=>'','error'=>3);

$filename=time().$ext;
}
if(0!==strrpos($save_dir,'/'))
$save_dir.='/';

//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true))
return false;
// return array('file_name'=>'','save_path'=>'','error'=>5);

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
$file = curl_exec($ch);
curl_close($ch);
$filename = $filename.$ext;
$resource = fopen($save_dir . $filename, 'a');
fwrite($resource, $file);
fclose($resource);
unset($file,$url);
return true;
// return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}

因为要先判断是否下载成功,return 都改成了false和true,可以自行设置路径及文件名

END
零分站龄17年资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
2517
文章
13
分类
3818
标签
3
友链
onlinelovesky317355746vipsever@vip.qq.com