php 传输文件

  /**
     * # +========================================================================
     * # | - @name        文件传输 
     * # | - @author     cq <just_leaf@foxmail.com> 
     * # | - @copyright zmtek 2018-11-07
     * # +------------------------------------------------------------------------
     * # | - 1.初始化文本格式
     * # +========================================================================
     */
    public function upload_file_to_java($path, $url, $json) {

        $new_path = $path;
        # 检测文件是否存在
        if(!file_exists($new_path)){die();
        }
        # 初始化
        $curl = curl_init();
        # 检测请求版本
        if (class_exists('\CURLFile')) {
            curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
            $data = array('Json' => $json, 'File' => new \CURLFile($new_path)); //>=5.5
        } else {
            if (defined('CURLOPT_SAFE_UPLOAD')) {
                curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
            }
            $data = array('Json' => $json, 'File' => '@' . $new_path); //<=5.5
        }

        # 请求地址
        curl_setopt($curl, CURLOPT_URL, $url);
        # HTTP POST,设置这个选项为一个非零值
        curl_setopt($curl, CURLOPT_POST, 1);
        # 在HTTP中的“POST”操作。
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        # 设定是否显示头信息
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        # 在HTTP请求中包含一个”user-agent”头的字符串。
        curl_setopt($curl, CURLOPT_USERAGENT, "TEST");
        # 不设置超时时间
        curl_setopt($curl, CURLOPT_TIMEOUT, 0);
        # 执行
        $result = curl_exec($curl);
        # 如果存在错误
        if (curl_errno($curl)) {
            # 主动触发一个异常
            $result = curl_error($curl);
        }
        # 关闭资源
        curl_close($curl);

        # 返回数据
        return $result;
    }
posted @ 2020-01-15 10:49  正义的棒棒糖  阅读(631)  评论(0编辑  收藏  举报