【问题标题】:C++ libcurl upload progress barC++ libcurl 上传进度条
【发布时间】:2015-08-21 13:44:33
【问题描述】:

这很简单:我们正在使用 libcurl 简单界面将大量文件上传到在线数据存储。 我需要显示此上传的进度。我知道所有文件信息,所以基本上我必须找出发送了多少位/字节并计算整个文件的百分比。

我查看了 libcurl 手册,但没有找到有关上传进度的任何信息,仅用于下载进度。

我是 libcurl 的新手,我正在使用同事的函数。所以我可能会错过一些东西。

有没有使用 libcurl 监控上传进度的方法?

【问题讨论】:

    标签: c++ upload progress-bar libcurl


    【解决方案1】:

    查看他们的documentation:

    由于历史和传统的原因,libcurl 有一个内置的 可以打开的进度表,然后使其呈现 终端中的进度表。

    奇怪的是,通过设置打开进度表 CURLOPT_NOPROGRESS 归零。此选项默认设置为1

    然而,对于大多数应用程序,内置进度表是无用的 相反,有趣的是指定进度的能力 打回来。然后将调用您传递给libcurl 的函数指针 不定期提供有关当前传输的信息。

    使用CURLOPT_PROGRESSFUNCTION 设置进度回调。并通过 指向与此原型匹配的函数的指针:

      int progress_callback(void *clientp,
                            double dltotal,
                            double dlnow,
                            double ultotal,
                            double ulnow);
    

    如果任何输入参数未知,将传递一个 0。这 第一个参数,'clientp' 是你传递给 libcurl 的指针 CURLOPT_PROGRESSDATA。 libcurl 不会碰它。

    【讨论】:

    • 请注意:“如果可以,我们鼓励用户使用较新的 CURLOPT_XFERINFOFUNCTION。”
    猜你喜欢
    • 2010-12-10
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2012-04-10
    • 2011-02-24
    相关资源
    最近更新 更多