关于php 5.5以上 CURL上传的问题(微信"errcode":41005,"errmsg",)

本文介绍了在不同PHP版本中使用curl进行文件上传的方法。对于5.5以下版本,可以通过@符号加文件路径的方式;5.5及以上版本则推荐使用CURLFile类。此外,还提供了一种通用解决方案,即通过curl_file_create函数创建CURLFile对象。

微信给出的方法是@+文件的路径来赋予数组来上传

$data = array( 
    'file' => '@/PATH/TO/FILE', 
    //....其他字段 
); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

问题来了,这个@只能在5.5以下的版本用,而在5.5和5.5以上的版本这个就失效了,必须用CURLFile这个类上传:

$data = array( 
    'file' => new CURLFile('/PATH/TO/FILE'), 
    //....其他字段 
); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

但是发现有少量的服务器不支持直接new CURLFile这个类,所以出现这种情况的时候我们可以curl_file_create来创建一个CURLFile的对象(此函数是该函数的别名: CURLFile::__construct() )

$data = array( 
    'file' => curl_file_create('/PATH/TO/FILE'), 
    //....其他字段 
); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

这样就可以了。

转载于:https://my.oschina.net/u/2443173/blog/512200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值