博维云文档


UpFile 【对象函数】

函数说明

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

函数原型

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

参    数

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

返回值

 bool(逻辑型,上传成功返回true,失败返回false) 

示    例

// 以下为win代码
// .h 文件
#define WM_USER_MSG_UP_FILE		WM_USER + 1000	// 文件上传进度消息
CDllWinInterface m_client; // 使用对象前请先在头文件中定义
afx_msg LRESULT OnMsgUpFile(WPARAM w,LPARAM l); // 消息函数
// .cpp 文件
// 消息映射
BEGIN_MESSAGE_MAP(CdemoDlg, CDialogEx)
    ON_MESSAGE(WM_USER_MSG_UP_FILE,&CdemoDlg::OnMsgUpFile) // 上传进度消息
END_MESSAGE_MAP()
// 消息函数
LRESULT CdemoDlg::OnMsgUpFile(WPARAM w,LPARAM l)
{
    std::string* strMsg = (std::string*)l;
    // 消息为json数据格式:{"file_name":"1.jpg","file_path":"C:\\1.jpg","msg_count":120,"msg_index":0,"save_path":"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::OnBnClickedBtnUp()
{
    CString strFilePath = L"c:\\1.jpg", strSaveFilePath = L"1.jpg", strTaskToken = L"my_up_task";
    BOOL bExistFail = TRUE, bSendApp = TRUE;
    std::wstring out_res = "";
    BOOL b = m_client.UpFileW(strFilePath,strSaveFilePath,strTaskToken,bExistFail,bSendApp,&out_res,this,WM_USER_MSG_UP_FILE);
    if(b)
        AfxMessageBox(L"上传成功");
    else
        AfxMessageBox(L"上传失败");
}

输出信息

备    注

错误信息

• 详情请使用 GetLastError() 获取