curl 向遠程服務器傳輸file文件



public
function upload(){ //獲取上傳文件信息,文件名稱以自己實際上傳文件名稱為准 $fileinfo = $_FILE['filename']; //請求參數,依據商戶自己的參數為准 $requestParam['version'] = '10'; $requestParam['cmd_id'] = '122'; $requestParam['mer_cust_id'] = '666666'; $requestParam['attach_file'] = new \CURLFile($fileinfo['tmp_name'],$fileinfo['type'],$fileinfo['name']); //發起請求 $param = [ 'requestData' => [ 'cmd_id' => $requestParam['cmd_id'], 'mer_cust_id' => $requestParam['mer_cust_id'], 'version' => $requestParam['version'], 'attach_file' => $requestParam['attach_file'], ], 'headers' => ['Content-type' => 'multipart/form-data;charset=UTF-8'] ]; $is_upload = 1; $requestRes = $this->request($param,$is_upload); return $requestRes ; }

private
function request($param, $is_upload=0) { // 請求接口所以參數初始化 $data = [ 'url' => $this->apiUrl, // 接口 url 'requestData' => $is_upload ? $param['requestData'] : http_build_query($param['requestData']), // 請求接口參數 'headers' => $param['headers'] ]; //print_r($data); //debug 打印接口傳輸數據 $res = $this->httpPostRequest($data['url'], $data['headers'], $data['requestData']); if (empty($res) || $res['info']['http_code'] != '200') { $this->json_ret('20006','http request error',[$res['error']]); } return [ 'status' => $res['info']['http_code'], 'body' => $res['body'] ]; }

//curl post 請求
private
function httpPostRequest($url = '', $header = array(), $requestData = array()) { $curl = curl_init(); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $requestData); $res = curl_exec($curl); $info = curl_getinfo($curl); $error = curl_error($curl); curl_close($curl); return [ 'body' => $res, 'info' => $info, 'error' => $error, ]; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM