|
新版本(AnyChat r6642)对文件传输API接口进行了扩展,新增的API接口定义如下(C++):- // 传送文件(扩展)
- BRAC_API DWORD BRAC_TransFileEx(CHAR* lpTaskGuid, DWORD dwUserId, LPCTSTR lpLocalPathName, DWORD dwFlags, CHAR* lpUserString);
- // 查询传输任务相关信息(扩展)
- BRAC_API DWORD BRAC_QueryTransTaskInfoEx(CHAR* lpTaskGuid, int infoname, char FAR* infoval, int infolen);
- // 取消传输任务(扩展)
- BRAC_API DWORD BRAC_CancelTransTaskEx(CHAR* lpTaskGuid, DWORD dwFlags, DWORD dwErrorCode);
复制代码 通过该扩展API接口可以实现传输文件时由发送方指定目标文件名,示例代码如下(JavaScript):
- //发送文件到服务器
- function SendFileToServer() {
- // 创建一个任务GUID
- var TaskGuid = BRAC_GetSDKOptionString(BRAC_SO_CORESDK_NEWGUID);
- // 传给服务器,目标用户ID为0
- var userid = 0;
- // 目标文件重命名
- var paramstr = {filename : "myname"};
- // 启动传输任务
- BRAC_TransFileEx(TaskGuid, userid, "", 0, JSON.stringify(paramstr));
-
- // 定期查询传输任务进度
- var t = setInterval(function () {
- var status = BRAC_QueryTransTaskInfoEx(TaskGuid, BRAC_TRANSTASK_PROGRESS);
- var message = "文件传输进度:" + status + "%";
- DisplayTextMessage(-1, message);
- if(status == 100) {
- DisplayTextMessage(-1, "传输任务完成");
- clearInterval(t);
- }
- },1000);
- }
复制代码 如果需要使用上面的扩展API接口,需要同时更新客户端SDK、核心服务器。 |
|