carp搭建公众平台(三)——上传下载多媒体文件

如不知道如何下载和部署carp,请看carp的介绍和配置一文。

公众平台的上传下载多媒体文件都是典型的主动消息动作,需要提醒一点,使用接口上传的多媒体文件,是无法使用公众平台的后台管理查看到的,上传成功后的mediaId,只能通过接口查看,所以carp把所有已上传的多媒体文件的本地位置,和获得的mediaId保存到了updatefile这张表。

carp中已内建了多媒体文件上传和下载的task的定义(不理解task含义的,请参考carp搭建公众平台(一)——发送客服消息一文),可以很方便的传递多媒体文件到公众平台。

上传多媒体文件的task名叫做“updatefile”,对应的Task类是UpdateFileTask.java,回调的Work类是UpdateFileWork.java,使用起来也很简单,部分代码如下:

//获得上传文件

File file = new File("c:/20121218182221_504.jpg");

//获得Task

UpdateFileTask task = (UpdateFileTask) carp.getTaskRepertory()

.getTaskByName("updatefile");

//为task赋值图片上传文件,对应的方法还有setVoiceFile()和setVedioFile(),对应音频文件和视频文件

task.setImgFile(file);

//发送任务

task.send();

任务执行成功后,会回调UpdateFileWork中的toDo()方法,将返回的mediaId保存到updatefile表中;具体的代码可查看demo中的UpdateFile。

下载多媒体文件的task名叫做“downloadfile”,对应的Task类是DownloadFileTask.java,回调的Work类是DownloadFileWork,需要提醒,这个回调的work没有把下载后的文件信息保存到数据库,只是将多媒体文件简单的保存到了本地,如果需要重新发送或者保存到数据库,需要自定义一个自己的Work类。下载多媒体文件的task使用也很方便,部分代码如下:

//获得任务实例

DownloadFileTask task = (DownloadFileTask) carp.getTaskRepertory()

   .getTaskByName("downloadfile");

//把需要下载的多媒体文件的mediaId为task赋值

task

    .setMediaId("wfvPPnhChKK00uTf_PzadtQ6C2w1H6XKjFV7pY68jbKB3DxTsINAgILfn3bs_NxO");

//发送任务

task.send();

carp中内置了大多数的复杂任务,通过对比weixin.task.xml中url,就可以了解这一点了。

carp技术群:368193775

相关文章:

carp的介绍和配置

carp搭建公众平台(一)——发送客服消息

carp搭建公众平台(二)——获得所有客户信息和自定义任务





你可能感兴趣的:(carp搭建公众平台(三)——上传下载多媒体文件)