PHP 微信 SDK 如何接收用户在微信客户端上传的图片?

2015-12-17 01:19:35 +08:00
 wd0g
刚接触做微信公众号,请我有这方面的教程吗?
或者如何接收用户在微信客户端上传的图片?
感谢大家哈
2743 次点击
所在节点    程序员
3 条回复
juneszh
2015-12-17 01:59:40 +08:00
API 已经说得很清楚了吧
1.本地选图接口获得 localid
2.上传图片接口传到企鹅服务器获得 severid
3.下载媒体接口通过 severid 下载到自己服务器
alex321
2015-12-17 09:06:55 +08:00
我相信 lz 是想做伸手党的,分享一个我前年写的微信 v1.0 的代码。。。

/**
* Wechat::fileGet()
* 拉取媒体文件
* @param string $accessToken
* @param string $mediaId
* @return
*/
public function fileGet($accessToken, $mediaId){
$url = 'http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=' . $accessToken . '&media_id=' . $mediaId;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0); //对 body 进行输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSLVERSION, 1); // https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=1414562353&version=12&lang=zh_CN , 1 ==> CURL_SSLVERSION_TLSv1
$package = curl_exec($ch);
$httpinfo = curl_getinfo($ch);
curl_close($ch);

$media = array_merge(array('mediaBody' => $package), $httpinfo);
//log_message('debug', var_export($media, true));

//求出文件格式
preg_match('/\w\/(\w+)/i', $media["content_type"], $extmatches);
$fileExt = $extmatches[1];
$filename = time().rand(100,999).".{$fileExt}";
$date = date('Ym');
$dirname = 'uploads/' . $date . '/';
$localdir = 'D:\\ykwxggzh\\wechat\\uploads\\' . $date . '\\';
if(!file_exists($localdir)){
mkdir($localdir,0777,true) ? null : mkdir($localdir);
}
file_put_contents($localdir.$filename,$media['mediaBody']);
return $dirname.$filename;
}
gundanx10
2015-12-17 14:50:04 +08:00
https://github.com/overtrue/wechat 用下这个库 微信带你飞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/244079

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX