场景
- laravel 框架
 
- 上传图片需要通过API接口传到图片服务器上 
 
方案
采用curl的方式,在PHP版本大于5.5.0需要用到CURLFile类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   | function curlPost($url, $postData, $post = 1) {     $curl = curl_init();     curl_setopt($curl, CURLOPT_POST, $post);
      curl_setopt($curl, CURLOPT_URL, $url);     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);     curl_setopt($curl, CURLOPT_HEADER, 0);
      if ($postData) {         curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);     }
      $data = curl_exec($curl);     $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);     curl_close($curl);     if ($httpcode == 200) {         return $data;     } else {         return $httpcode;     } }
   | 
 
在调用方法的时候第二个参数是个数组,API接口参数file
1 2 3
   | array( 	'file' => new \CURLFile($path) )
   | 
若同时上传多个文件,如下
1 2 3 4
   | array( 	'file[0]' => new \CURLFile($path1), 	'file[1]' => new \CURLFile($path2) ));
   |