PHP7 cURL上傳文件至七牛 curl_setopt(): Disabling safe uploads is no longer supported

在做php5.3升級到php7.1時出了點(diǎn)小問題,使用curl上傳素材文件到七牛時
提示:

運(yùn)行時會出現(xiàn)以下錯誤:curl_setopt(): Disabling safe uploads is no longer supported

意思時該設(shè)置項已經(jīng)不被支持。
之后在官方文檔上找到
TRUE to disable support for the @ prefix for uploading files inCURLOPT_POSTFIELDS, which means that values starting with @can be safely passed as fields. CURLFile may be used for uploads instead.

  • 于是嘗試使用CURLFile(PHP5.5以上開始支持)
    具體代碼如下:
    /**
     * 上傳七牛
     * @param string $scope
     * @param string $file
     * @param string $key
     * @return mixed
     */
    public function qiniu_uploads($scope = '', $file = '', $key = '') {
        $access_key = QINIU_ACCESS_KEY;
        $secret_key = QINIU_SECRET_KEY;
        $b = json_encode(array('scope' => $scope, 'deadline' => time() + 3600));
        $token = $access_key . ':' . str_replace(array('+', '/'), array('-', '_'), base64_encode(hash_hmac('sha1', str_replace(array('+', '/'), array('-', '_'), base64_encode($b)), $secret_key, true)) . ':' . str_replace(array('+', '/'), array('-', '_'), base64_encode($b)));
        $fields = array('token' => $token, 'file' =>  new \CURLFile($file), 'key' => $key);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://up.qiniu.com/');
        curl_setopt($ch, CURLOPT_POST, TRUE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        $content = curl_exec($ch);
        curl_close($ch);
        return $content;
    }

最終成功將文件上傳至七牛

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容