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搭建公衆平臺(二)——得到全部客戶信息和自定義任務

相關文章
相關標籤/搜索