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

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

公众平台的上传下载多媒体文件都是典型的主动消息动做,须要提醒一点,使用接口上传的多媒体文件,是没法使用公众平台的后台管理查看到的,上传成功后的mediaId,只能经过接口查看,因此carp把全部已上传的多媒体文件的本地位置,和得到的mediaId保存到了updatefile这张表。数据库

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

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

//得到上传文件.net

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

//得到Task视频

UpdateFileTask task = (UpdateFileTask) carp.getTaskRepertory()xml

.getTaskByName("updatefile");blog

//为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搭建公众平台(二)——得到全部客户信息和自定义任务

相关文章
相关标签/搜索