zoukankan      html  css  js  c++  java
  • CURLOPT_PROGRESSFUNCTION

    Author:李强(李祥祥)

    Date   :2012-12-15 17:26

    LIBCURL官方网站都没有说清楚道明白进度函数的参数的作用,这点我感觉文档很片面,经总结如下:

    size_t CUploader::ProgressCallBackFun(void *buffer, 
               double dltotal, 
               double dlnow, 
               double ultotal, 
               double ulnow)

    1.当下载时候使用了前面两个参数dltotal,dlnow表示要下载的总的字节大小(如何是续传,dltotal不包含其大小,仅表示需要下载的大小),dlnow表示现在已经下载的字节数。

    2.当为读取表示上传进度时候后面两个参数就起作用了ultotalulnow,ultotal表示需要上传的总大小、ulnow表示已经上传的字节的大小。

    一开始没注意,后来看到别人的实例程序发现,上传和下载使用的参数不一致才醒悟过来,原来参数名表示是这样的:

    dltotal:DownLoad TOTAL-->DLTOTAL:dltotal

    ultotal:  UpLoad TOTAL --->ULTOTAL:ultotal

    呵呵,libcurl你TM也不解释,害的我花这么长时间理解,由于长时间受恩与各大网友,我也不能不做点贡献。

    另外,为了实现上传和下载,我特意做了一个上传和下载工具,实践发现:当下载的时候,如果指定

     curl_easy_setopt(m_pCurl, CURLOPT_POST, true); 下载时不能指定为post方式,否则下载时进度函数dltotal,dlnow都为0,导致下载进度函数执行可能失败!!!!大家可注意了!

  • 相关阅读:
    原型模型
    单例模式
    C# 委托 delegate
    C#泛型
    客户端注册Cannot execute request on any known server解决
    SpringCloud 学习(二)-2 :Securing The Eureka Server
    SpringCloud 学习(二)-1 :服务注册与发现Eureka扩展
    解决网速慢时maven仓库访问慢
    SpringCloud 学习(二) :服务注册与发现Eureka
    SpringCloud版本问题
  • 原文地址:https://www.cnblogs.com/RodYang/p/3431975.html
Copyright © 2011-2022 走看看