php下载远程图片保存到本地

复制代码
/**
 * 下载远程图片保存到本地
 * @param $url  文件url
 * @param $save_dir  保存文件目录
 * @param $filename  保存文件名称
 * @param $type  使用的下载方式
 * @return bool
 */
function downloadImage($url, $save_dir = '', $filename = '')
{
    if (trim($url) == '') {
        return '';
    }
    if (trim($save_dir) == '') {
        $save_dir = './';
    }
    if (trim($filename) == '') { //保存文件名
        $ext = strrchr($url, '.');
        if ($ext != '.gif' && $ext != '.jpg' && $ext != '.png' && $ext != '.jpeg') {
            return '';
        }
        $filename = uniqid() . $ext;
    }
    if (0 !== strrpos($save_dir, '/')) {
        $save_dir .= '/';
    }
    //创建保存目录
    if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) {
        return '';
    }

    //获取远程文件所采用的方法
    try {
        ob_start();
        readfile($url);
        $img = ob_get_contents();
        ob_end_clean();
    } catch (\Exception $e) {
        // 下载失败,返回原路径
        return '';
    }
    //文件大小
    $fp2 = @fopen($save_dir . $filename, 'a');
    fwrite($fp2, $img);
    fclose($fp2);
    unset($img, $url);

    // 返回文件路径
    $localPath = $save_dir . $filename;
    return public_path() . $localPath;
}
复制代码

 

本文作者:潘潘潘的博客

本文链接:https://www.cnblogs.com/seanpan/p/18006149

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   潘潘潘的博客  阅读(146)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.