PHP 利用curl下载文件,成功则返回文件地址,失败则返回下载链接

时间:2023年10月07日

/

来源:网络

/

编辑:佚名

之前也写过类似的功能,但是没有记笔记,最后就搞忘了,最近又开始写,所以这里记录一下!

PHP代码:
public function downloadFile($url, $path) {
    // 判断文件是否存在
    if (file_exists($path)) {
        // 判断文件大小是否大于10KB
        if (filesize($path) > 10240) {
            // 文件已经成功下载过
            return str_replace(dirname(dirname(__DIR__)), '', $path);
        }
    }
    // echo 123;
    // 初始化 cURL
    $ch = curl_init($url);
    // 设置保存文件路径及文件句柄
    $fp = fopen($path, 'w');
    curl_setopt($ch, CURLOPT_FILE, $fp);
    // 设置 cURL 选项
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
    // 执行下载
    $result = curl_exec($ch);
    // 关闭文件句柄和 cURL 资源
    fclose($fp);
    curl_close($ch);
    // 根据下载结果返回对应的值
    if ($result !== false) {
        return str_replace(dirname(dirname(__DIR__)), '', $path);
    } else {
        // 处理错误
        return $url;
    }
}
代码使用:
放进你的类库里,然后使用传入下载链接和需要存放的绝对地址即可,代码需要进行相关的修改,请自理更新,代码经供参考。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。