以前我们通过 PHP 的 cURL 上传文件是,是使用“@+文件全路径”的来实现的:
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 方法。
真的是让我欲哭无泪,我调试了 2天2夜,也怪我装逼一定要升级到 PHP5 的最新版,所以 PHP 5.6 使用 CURL 上传文件的代码:
curl_setopt(ch, CURLOPT_POSTFIELDS, [
'file' => new CURLFile(realpath('image.png')),
]);