博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php采集远程图片保存到本地
阅读量:6227 次
发布时间:2019-06-21

本文共 1429 字,大约阅读时间需要 4 分钟。

  hot3.png

/** * 采集远程图片 * @param string $url 远程文件地址 * @param string $filename 保存后的文件名(为空时则为随机生成的文件名,否则为原文件名) * @param array $fileType 允许的文件类型 * @param string $dirName 文件保存的路径 * @param int $type 远程获取文件的方式 * @return json 返回文件名、文件的保存路径 */function download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1){    if ($url == '')    {        return false;    }    // 获取文件原文件名    $defaultFileName = basename($url);    // 获取文件类型    $suffix = substr(strrchr($url, '.'), 1);    if (!in_array($suffix, $fileType))    {        return false;    }    // 设置保存后的文件名    $fileName = $fileName == '' ? time() . rand(0, 9) . '.' . $suffix : $defaultFileName;    // 获取远程文件资源    if ($type)    {        $ch = curl_init();        $timeout = 30;        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);        $file = curl_exec($ch);        curl_close($ch);    }    else    {        ob_start();        readfile($url);        $file = ob_get_contents();        ob_end_clean();    }    // 设置文件保存路径    $dirName = $dirName;    if (!file_exists($dirName))    {        mkdir($dirName, 0777, true);    }    // 保存文件    $res = fopen($dirName . '/' . $fileName, 'a');    fwrite($res, $file);    fclose($res);    return array(        'fileName' => $fileName,        'saveDir' => $dirName    );}

 

转载于:https://my.oschina.net/sumiao/blog/3045139

你可能感兴趣的文章
用户配置文件的类型
查看>>
syslogd日志集中管理
查看>>
使用vCenter Server在开机状态下克隆虚拟机
查看>>
网页上PNG透明图片的ie6bug
查看>>
不错的东西: AutoMapper
查看>>
docker:架构拆解
查看>>
一次被黑经历与反思
查看>>
django—收集主机信息到cmdb(2)
查看>>
数据查看权限 (规则) 相关网址
查看>>
rhel7.4安装oracle 11G
查看>>
重构项目之二:使用瀑布流效果加载图片
查看>>
zabbix的action不触发问题
查看>>
Java - java与javac版本不一致问题
查看>>
通过pxe批量定制系统
查看>>
我的友情链接
查看>>
MaxScale2.2如何自动加载MySQL用户
查看>>
OCaml语言开发(1)
查看>>
K3CLOUD单据上的审核人与审核日期字段怎么配置?当审核的时候,为什么不能显示是谁审核的?...
查看>>
网络安全系列之三十 远程文件包含***
查看>>
什么是Xinetd
查看>>