`

使用PHP从微信服务器上下载文件到本地服务器

阅读更多

总所周知,文件上传到微信之后,使用$src= "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" . $access_token . "&media_id=" . $f ['file'];就可以获取到文件信息,若是图片,使用img标签的将其src属性设置为$src就可以在页面显示图片了。

 

这篇就用这个作为文件的URL进行文件下载:

$url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" . $access_token . "&media_id=" . $f ['file'];

其中$access_token是根据微信公众平台注册的APPID、秘钥等加密之后获取到的签名,$f ['file']是上传到微信服务器之后返回来的文件在服务器上的微信信息,是一个字符串,有点类似于:文件上传到服务器之后,在文件表中插入一条数据记载这个文件的名称、路径、所属AppId等基本信息,并将这条数据的主键序号返回给客户端。$f ['file']就是这个主键序号。

 

文件下载的调用方法:

var $array = $this->getImage($url,$path,$fileName,1);

 

文件下载的具体代码:

/*
*功能:下载远程图片保存到本地
*参数:
*$url:需要下载的文件url,
*$path:下载下来的文件需要保存到的目录
*$fileName:保存文件名称,当保存文件名称为空时则使用远程文件原来的名称
*type:使用的下载方式
*/
function getImage($url,$save_dir='',$filename='',$type=0){
	$ext=".jpg";//以jpg的格式结尾
	clearstatcache();//清除文件缓存
	if(trim($url)==''){
		return array('file_name'=>'','save_path'=>'','error'=>1);
	}
	if(trim($save_dir)==''){
		$save_dir='./';
	}
	if(trim($filename)==''){//保存文件名
		$filename=time().$ext;
	}else{
		$filename = $filename.$ext;
	}
	if(0!==strrpos($save_dir,'/')){
		$save_dir.='/';
	}
	//创建保存目录
	if(!is_dir($save_dir)){//文件夹不存在,则新建
		//print_r($save_dir."文件不存在");
		mkdir(iconv("UTF-8", "GBK", $save_dir),0777,true);
		//mkdir($save_dir,0777,true);
	}
	//获取远程文件所采用的方法 
	if($type){
		$ch=curl_init();
		$timeout=3;
		curl_setopt($ch,CURLOPT_URL,$url);
		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
		curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
		curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
		$img=curl_exec($ch);
		curl_close($ch);
	}else{
		ob_start(); 
		readfile($url);
		$img=ob_get_contents(); 
		ob_end_clean(); 
	}
	$size=strlen($img);
	//文件大小 
	//var_dump("文件大小:".$size);
	$fp2=@fopen($save_dir.$filename,'w');
	fwrite($fp2,$img);
	fclose($fp2);
	unset($img,$url);
	return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}

 

分享到:
评论

相关推荐

    微信小程序PHP文件上传服务器端接口

    该资源实现了微信小程序的文件上传功能,可以直接使用!

    微信jssdk语音录制和上传下载

    //微信上传下载媒体文件 // 这里不能加上s,不然保存不了amr文件 $url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media;_id={$media_id}"; ffmpeg下载地址 ...

    微信公众号连接服务器端验证PHP

    微信公众号开发,微信平台连接个人服务器时用于验证的代码文件;用法:上传部署到服务器即可

    本地搭建微信小程序服务器的实现方法

    本地搭建微信小程序服务器的实现方法是指在本地环境中搭建一个微信小程序服务器,以便在开发和测试过程中使用。以下是本地搭建微信小程序服务器的实现方法的详细步骤: 一、域名注册 为了搭建微信小程序服务器,...

    检测域名是否被微信封杀php文件源码

    描述中提到的使用方法是通过发送HTTP请求到服务器上的`api.php`脚本,并将待检测的域名作为参数`url`传递。例如,如果你想要检测`example.com`是否被微信封禁,你可以访问`http://你的域名/api.php?url=example.com`...

    微信公众号配置服务器PHP版

    这是一个用于微信公众号配置PHP版本服务器用到的文件,亲测可用,只需替换文件中的中文提示部分,然后将文件上传到服务器端,简单到0。

    微信支付Native扫码方式(PHP)

    notifyUrl.php :用户支付商品后,微信服务器会将商品信息、支付结果、用户的openId等重要信息以get和post方式传递到该链接上,该脚本接收这些信息,并根据支付信息做发货处理,最后返回给微信服务器success,告知...

    PHP调用微信摄像头获取图片上传到服务器源码

    通过微信 JSD-SDK开发文档,调用微信接口获取摄像头图片上传到服务器,保存图片到本地服务器

    PHP APP微信支付

    - 用户确认支付,微信服务器接收到支付成功信息,同时会发送一个异步通知(notify_url)到开发者设定的服务器地址。 2. **ThinkPHP框架的应用**: - ThinkPHP是一个流行的PHP框架,用于快速开发Web应用。在处理...

    微信小程序PHP支付功能文件

    - **生成预支付订单(统一下单接口)**: 开发者通过调用微信支付API,使用PHP代码向微信服务器发送请求,生成预支付订单。这个订单包含了商品信息、金额、交易类型等。 - **获取预支付交易串(prepay_id)**: 微信...

    app微信支付,php服务器端参考

    当用户支付成功,微信服务器会发送通知到此URL,服务器端需要验证这些通知的合法性,并根据通知内容进行相应的业务处理,比如更新订单状态、发货等。 6. **安全与证书**: 文件`1218891802_20140425185952.pfx`可能...

    微信小程序实现上传word、txt、Excel、PPT等文件功能

    3.后端php接收文件并存到一个服务器文件夹,把文件名存到数据库以后检索用 4.在微信小程序创建一个页面,里面使用web-view达到上传文件的目的; 效果图: 具体实现: 1. 在小程序后台配置业务域名 2. 在服务器写一...

    PHP微信支付v3 完整实例

    - **支付回调通知**: 支付成功后,微信服务器会向商家服务器发送异步通知。 - **订单查询与确认**: 商家服务器接收到通知后,通过查询接口验证订单状态,确保支付成功,并更新订单状态。 4. **API签名机制** ...

    php微信小程序全套源代码(后台和小程序)

    这个项目不仅提供了小程序前端的代码,还包含了后台服务器端的实现,意味着开发者可以全面掌握微信小程序从后端到前端的整个流程。 描述中提到,“微信小程序,完整项目,源代码,后台,小程序 基于腾讯云”,这说明...

    微信小程序通过php后端解密后获得微信步数

    微信小程序是一种轻量级的应用开发框架,它允许开发者在微信平台上构建无需下载安装即可使用的应用。在微信小程序中,可以通过调用微信提供的API获取用户的健康数据,包括步数。然而,这些数据是加密的,需要通过...

    企业微信SDK包PHP扩展

    企业微信SDK包PHP扩展是专为开发者设计的工具,用于帮助他们在PHP环境中更方便地集成和使用企业微信的API功能。这个扩展名为“Wxwork”,它提供了丰富的类库和函数,使得开发者能够轻松实现与企业微信接口的交互,如...

    php微信接口sign算法.zip

    1. **构建参数数组**:首先,你需要将所有发送到微信服务器的参数(不包括`sign`本身)放入一个关联数组中。这些参数可能包括`appid`、`noncestr`、`timestamp`等,具体取决于调用的接口。 2. **参数排序**:对数组...

    微信支付php案例

    PHP代码应包含证书的加载和管理逻辑,确保在请求微信服务器时使用正确的证书。 5. **回调通知处理**: 支付完成后,微信服务器会向商户服务器发送异步通知,告知支付结果。PHP代码需要实现一个接收并验证这些通知...

    php比较完整的微信开发类

    当用户在微信上进行某些操作时,微信服务器会发送POST请求到开发者服务器,携带XML格式的消息数据。这个PHP类应该包含了解析XML并提取关键参数的函数,如`FromUserName`(发送方OpenID)、`ToUserName`(接收方...

    php微信分享带图标demo.zip

    总之,这个"php微信分享带图标demo"项目为开发者提供了完整的示例,涵盖了从后端签名生成到前端分享功能的实现,是学习和实践微信网页分享功能的一个宝贵资源。通过深入研究和实践这个项目,开发者可以更好地掌握...

Global site tag (gtag.js) - Google Analytics