php5.6使用cURL上传文件

由于现在使用rest接口之后,php开发的前端网站中,使用curl上传文件的场景现在越来越多,如何调用rest接口上传文件,就变得又不要仔细研究一下。

之前吧,我们在curl中上传一个文件,会使用一个@+全路径的方式发送curl的请求。

curl_setopt(ch, CURLOPT_POSTFIELDS,[
    'file' => '@'.realpath('idongjia.apk'), 
]);

不过,这种情况使用起来并不那么友好,有时候需要MIME的信息错误,导致上传文件失败,或者调用接口失败。

php5.5开始引入了一个新的lib——CURLFILE类,CURLFILE的构造函数指向一个file,然后,最让人叫好的是它可以制定详细的MIME类型等可能出现在multipart/form-data数据表单中的额附件信息,PHP 推荐使用 CURLFile 替代旧的@语法,而 PHP 5.6 直接只支持 CURLFile 方法。

curl_setopt(ch, CURLOPT_POSTFIELDS, [
    'file' => new CURLFile(realpath('idongjia.apk')), 
]);

你可能感兴趣的:(curl,rest,php)