之前咱們經過 PHP 的 cURL 上傳文件是,是使用「@+文件全路徑」的來實現的:php
curl_setopt(ch, CURLOPT_POSTFIELDS, array( 'file' => '@'.realpath('image.png'), ));
PHP 從 5.5 開始引入了新的 CURLFile 類用來指向文件,CURLFile 類也能夠詳細定義 MIME 類型、文件名等可能出如今multipart/form-data 數據中的附加信息,PHP 推薦使用 CURLFile 替代舊的@語法,而 PHP 5.6 直接只支持 CURLFile 方法。curl
真的是讓我欲哭無淚,我調試了 2天2夜,也怪我裝逼必定要升級到 PHP5 的最新版,因此 PHP 5.6 使用 CURL 上傳文件的代碼:url
curl_setopt(ch, CURLOPT_POSTFIELDS, [ 'file' => new CURLFile(realpath('image.png')), ]);