php curl 实现文件上传

/**
     * @param string $url 请求地址
     * @param string $filePath 上传文件的绝对路径
     * @param array $postParam 数据
     * @return array|bool|string
     */
    public function uploadFile($url, $filePath, $postParam)
    {
        if(version_compare(phpversion(),'5.5.0') >= 0 && class_exists('CURLFile')){
            $file = new CURLFile(realpath($filePath));
        }else{
            $file = '@'.$filePath;
        }
        $data = ["file" => $file];

        $param = array_merge($postParam, $data);
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        $response = curl_exec($ch);
        if (curl_errno($ch) != 0)
            return curl_error($ch);

        curl_close($ch);
        if (!$response)
            return false;

        return $response;
    }


注意:PHP版本不一样,支持的版本不同,所以要分情况写明


示例:

 $url = 'http://localhost/ComposeApi/file.php';
 $file = 'C:/WWW/XXX/uploads/wx/thumb/20170609/3c40cd75a6e9d5c570fb662a098195ca.jpg';
 $result = $this->uploadFile($url,$file,[]);
 var_dump($result);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值