博维云文档


DownFile 【对象函数】

函数说明

下载服务器上传下载目录里的文件到本地(云端事件函数不存在时默认为禁止下载)

函数原型

DownFile(const char* server_file_path,const char* local_save_name,const char* task_token = "",BOOL bExistFail = TRUE,BOOL bApp = FALSE,std::string* out_res = NULL,CWnd* pWnd = NULL,int nMsgType = 0)

参    数

• server_file_path [字符串型]:待下载的服务器文件路径(格式:a/1.jpg)
• local_save_name [字符串型]:保存在本地的文件名称(可以包含路径,例子:c:\\a\\b\\a.txt,如果有中间目录则自动创建)
• task_token [字符串型]:任务标识符,用于停止任务和进度信息甄别(建议使用唯一性字符串),为空则不能手动停止任务(长度:0 - 16)
• bExistFail [逻辑型]:true 表示如果本地存在同名文件则下载失败
• bApp [逻辑型]:true 表示发送消息给云应用进行验证,触发云应用函数 _downfile(),如果函数不存在则禁止下载
• out_res [字符串指针]:接收云应用函数 _downfile() 回传的数据
• pWnd [窗口指针]:接收下载过程中的进度和任务消息
• nMsgType [整型]:窗口接收下载任务消息的消息类型,必须 > WM_USER

返回值

 bool(逻辑型,下载成功返回true,失败返回false) 

示    例

// 以下为win代码
// .h 文件
#define WM_USER_MSG_DOWN_FILE	WM_USER + 1001  // 文件下载进度消息
CDllWinInterface m_client; // 使用对象前请先在头文件中定义
afx_msg LRESULT OnMsgDownFile(WPARAM w,LPARAM l); // 消息函数
// .cpp 文件
// 消息映射
BEGIN_MESSAGE_MAP(CdemoDlg, CDialogEx)
    ON_MESSAGE(WM_USER_MSG_DOWN_FILE,&CdemoDlg::OnMsgDownFile) // 下载进度消息
END_MESSAGE_MAP()
// 消息函数
LRESULT CdemoDlg::OnMsgDownFile(WPARAM w,LPARAM l)
{
    std::string* strMsg = (std::string*)l;
    // 消息为json数据格式:{"file_name":"1.jpg","file_path":"a/1.jpg","msg_count":120,"msg_index":0,"save_path":"C:\\1.jpg","task_percent":0.8333333333333334,"task_token":"task123"}
    // file_name:下载的文件名称
    // file_path:下载的文件路径
    // save_path:保存在本地的文件路径
    // all_bytes:下载的总数据大小
    // up_bytes:已下载的数据大小
    // task_percent:下载的文件进度
    // task_token:任务标识符
    return TRUE;
}

// 下载文件部分代码
void CdemoDlg::OnBnClickedBtnDown()
{
    CString strFilePath = L"1.jpg", strSaveFilePath = L"C:\\1.jpg", strTaskToken = L"my_down_task";
    BOOL bExistFail = TRUE, bSendApp = TRUE;
    std::wstring out_res = "";
    BOOL b = m_client.DownFileW(strFilePath,strSaveFilePath,strTaskToken,bExistFail,bSendApp,&out_res,this,WM_USER_MSG_UP_FILE);
    if(b)
        AfxMessageBox(L"下载成功");
    else
        AfxMessageBox(L"下载失败");
}

输出信息

备    注

错误信息

• 详情请使用 GetLastError() 获取