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.当为读取表示上传进度时候后面两个参数就起作用了ultotal\ulnow,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,导致下载进度函数执行可能失败!!!!大家可注意了!
CURLOPT_PROGRESSFUNCTION的更多相关文章
- curl 小结
cURL可以使用URL的语法模拟浏览器来传输数据, 因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以 ...
- php curl
这几天在帮一些同学处理问题的时候,突然发现这些同学是使用file_get_contents()函数来采集页面内容的,貌似都没有curl的概念亦或是对这种工具特别不敏感, 本文我来给大家详细介绍下cUR ...
- libcurl教程
名称 libcurl 的编程教程 目标 本文档介绍使用libcurl编程的一般原则和一些基本方法.本文主要是介绍 c 语言的调用接口,同时也可能很好的适用于其他类 c 语言的接口. 跨平台的可移植代码 ...
- man curl_easy_setopt(原创)
中文翻译: curl_easy_setopt(3) libcurl 手册 curl_easy_setopt(3) 名称 curl_easy_setopt -curl的设置选项概要 #include & ...
- CURLcode curl_easy_setopt(原创)
中文翻译: curl_easy_setopt() libcurl 手册 curl_easy_setopt() 名称 curl_easy_setopt -curl的设置选项 概要 #include &l ...
- php中curl模拟浏览器来传输数据
cURL可以使用URL的语法模拟浏览器来传输数据, 因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以 ...
- C++ 用libcurl库进行http通讯网络编程
使用libcurl完成http通讯,很方便而且是线程安全,转载一篇比较好的入门文章 转载自 http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724 ...
- C++ 用libcurl库进行http通讯网络编程(转)
转载:http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html 目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三. ...
- 2.1 LibCurl编程流程(转)
转载地址:http://blog.chinaunix.net/u/17660/showart_1822514.html2 LibCurl编程2.1 LibCurl编程流程在基于LibCurl的程序里, ...
随机推荐
- sqllocaldb 的使用记录
sql脚本是一个文件大约也就几MB,要是有一种文件存储数据就好了,后来了解到了sqllocaldb,但是没有深入研究大概知道有这么一个东西.这次翻出来还是自家小姑姑要做winfrom但是苦于sqlse ...
- for in在对象和数组中的应用
var obj = { name:'lei', be:'dd', age:23 } for(var poo in obj){ alert('对象的属性和值为:'+poo+':'+obj[poo]); ...
- CentOS下ganglia监控部署
第一步:CentOS环境准备 1.yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel ...
- docker 资源限制
docker run 时使用-m指定可以使用的内存大小, 记录在cgroup配置文件中 cat /sys/fs/cgroup/memory/memory.limit_in_bytes jvm内存会超过 ...
- testlink迁移
前置配置:安装mysql-5.5.13-win32版数据库(速度快点),设置root密码为123465(mysql5.5数据库端口号不要与redmine的mysql冲突) 1.安装testlink(版 ...
- 由Python的浅拷贝(shallow copy)和深拷贝(deep copy)引发的思考
首先查看拷贝模块(copy)发现: >>> help(copy)Help on module copy:NAME copy - Generic (shallow and dee ...
- Entity framework 7通过代码添加外键关系的方法
这几天研究Asp.net5,也试着写了一些示例代码,因为网上的资料实在是太少了,所以在此把一些问题的解决方法记录下来,以备后查. 问题: 在EF7中,假如数据库已经存在,并且两个表具有外键关系,但是实 ...
- js 限制文本框不能输入单引号
<input onkeydown="if(event.keyCode==32||event.keyCode==188||event.keyCode==222){return false ...
- babel7中 preset-env 完全使用
babel7中 preset-env 完全使用 const presets = [ ['@babel/env', { // chrome, opera, edge, firefox, safari, ...
- servlet传值到servlet传值问题
今天在项目中遇到一个问题:中期项目自己做的新闻部分NewsPagerSortservlet传值时,正确答案如下 if(title!=""){ resp.sendRedirect(& ...