1. 程式人生 > >Yii框架使用Curl進行檔案上傳(微信公眾號)

Yii框架使用Curl進行檔案上傳(微信公眾號)

public function actionUpload(){
    $type = Yii::$app->request->post('type');
    //獲取token
    $token = Yii::$app->cache->get($this->tokenKey);
    //接收檔案
    $url = "https://api.weixin.qq.com/cgi-bin/media/upload";
    $file = UploadedFile::getInstanceByName('file');
    $filepath = Yii::$app->basePath.'\web\uploads\\';
    $filename = $filepath.time().'.'.$file->getExtension();
    //move_uploaded_file($filename,$file->tempName);
    $file->saveAs($filename);
    //將檔案上傳至伺服器
    $curl = new Curl();
    $curl->setOption(CURLOPT_SSL_VERIFYPEER,false);
    $curl->setOption(CURLOPT_SSL_VERIFYHOST,false);
    $param  = array('access_token'=>$token,'type'=>$type);
    $curl->setGetParams($param);
    $data = array(
        'media'=>new \CURLFile(realpath($filename),'image/jpg')
    );
    $curl->setRawPostData($data);
    $obj = $curl->post($url,false);
    //print_r($obj);
    //直接獲取上傳的資料
    //將上傳的資料進行展示
    $media_id = $obj['media_id'];
    //獲取該檔案資訊
    header('Content-type:image/jpg');
    echo $this->actionGetfiles($token,$media_id);
}