cURL file uploads not working anymore after upgrade from PHP 5.5 to 5.6

前端 未结 3 1883
礼貌的吻别
礼貌的吻别 2020-12-02 15:58

I\'ve got a cURL upload that fails after upgrading from PHP 5.5 to 5.6:

$aPost = array(
    \'file\' => \"@\".$localFile,
    \'default_file\' => \'htm         


        
3条回答
  •  不知归路
    2020-12-02 16:22

    Actually I found the answer while starting the question. There is a new Variable included with curl in PHP 5.5: CURLOPT_SAFE_UPLOAD this is set to false by default in PHP 5.5 and is switched to a default of true in PHP 5.6.

    This will prevent the '@' upload modifier from working for security reasons - user input could contain malicious upload requests. You can use the CURLFile class to upload files while CURLOPT_SAFE_UPLOAD is set to true or (if you're sure your variables are safe you can switch the CURLOPT_SAFE_UPLOAD to false manually):

     curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
    

    Here's a source for the information that got me searching in the right direction: http://comments.gmane.org/gmane.comp.php.devel/87521

    It's mentioned in the changed functions too: http://php.net/manual/en/migration56.changed-functions.php But not in the backward incompatible changes, really tripped me off...

提交回复
热议问题