解决微信上传多媒体 PHP版本5.4,5.5,5.6都通用

原文地址:http://www.ithao123.cn/content-828327.html


$filepath = dirname ( __FILE__ ) . "/a.jpg"; 

if (class_exists ( 'CURLFile' )) {

//关键是判断curlfile,官网推荐php5.5或更高的版本使用curlfile来实例文件

$filedata = array ( 

'fieldname' => new CURLFile ( realpath ( $filepath ), 'image/jpeg' ));

 } else { 

$filedata = array ( 'fieldname' => '@' . realpath ( $filepath )  ); 

$url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=" . $access_token . "&type=image"; $result = Http::upload ( $url, $filedata );

//调用upload函数 if (isset ( $result )) { 

$data = json_decode ( $result ); 

if (isset ( $data->media_id )) {

$this->responseText ( $data->media_id );

//这是我自己封装的返回消息函数 

} else { 

$this->responseImg ( "not set media_id" );

//这是我自己封装的返回消息函数 } 

} else { 

$this->responseText ( "no response" );

//这是我自己封装的返回消息函数

 }

  public static function upload($url, $filedata) { 

$curl = curl_init (); 

if (class_exists ( '/CURLFile' )) {

//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同 

curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, true ); 

} else { 

if (defined ( 'CURLOPT_SAFE_UPLOAD' )) { 

curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false ); 

curl_setopt ( $curl, CURLOPT_URL, $url );

curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );

curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE );

if (! empty ( $filedata )) { 

curl_setopt ( $curl, CURLOPT_POST, 1 ); 

curl_setopt ( $curl, CURLOPT_POSTFIELDS, $filedata );

curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );

$output = curl_exec ( $curl ); 

curl_close ( $curl ); 

return $output; 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值