libcurl 通过http协议下载文件并显示下载进度
vc6 测试工程下载地址:http://download.csdn.net/detail/mtour/8068053
代码如下:
- size_t my_write_func(void *ptr, size_t size, size_t nmemb, FILE *stream)
- {
- return fwrite(ptr, size, nmemb, stream);
- }
- int my_progress_func(char *progress_data,
- double t, /* dltotal */
- double d, /* dlnow */
- double ultotal,
- double ulnow)
- {
- printf("%s %g / %g (%g %%)\n", progress_data, d, t, d*100.0/t);
- return 0;
- }
- int main(int argc, char **argv)
- {
- CURL *curl;
- CURLcode res;
- FILE *outfile;
- char *url = "http://10.10.1.4/d/c00000000000039/2014-10-22/10-28-35.ps";
- char *progress_data = "* ";
- curl = curl_easy_init();
- if(curl)
- {
- outfile = fopen("test.ps", "wb");
- curl_easy_setopt(curl, CURLOPT_URL, url);
- curl_easy_setopt(curl, CURLOPT_WRITEDATA, outfile);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_write_func);
- curl_easy_setopt(curl, CURLOPT_NOPROGRESS, FALSE);
- curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, my_progress_func);
- curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, progress_data);
- res = curl_easy_perform(curl);
- fclose(outfile);
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
- return 0;
- }
libcurl 通过http协议下载文件并显示下载进度的更多相关文章
- libcurl开源库在Win7 + VS2012环境下编译、配置详解 以及下载文件并显示下载进度 demo(转载)
转载:http://blog.csdn.net/fengshuiyue/article/details/39530093(基本教程) 转载:https://my.oschina.net/u/14207 ...
- Android中如何下载文件并显示下载进度
原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1125/2057.html 这里主要讨论三种方式:AsyncTask.Serv ...
- 实现在 .net 中使用 HttpClient 下载文件时显示进度
在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...
- 使用libcurl开源库和Duilib做的下载文件并显示进度条的小工具
转载:http://blog.csdn.net/mfcing/article/details/43603525 转载:http://blog.csdn.net/infoworld/article/de ...
- C# Winform下载文件并显示进度条
private void btnDown_Click(object sender, EventArgs e) { DownloadFile("http://localhost:1928/We ...
- php强制下载文件并显示原始文件名
原来一直没有接触过,这几天一直在玩儿文件上传下载的东西.今天又遇到一个坑. 描述:文件上传至服务器后,如果是rar或则其他的非浏览器直接识别的格式,用户点击链接了后是可以直接就被下载下来的.那么如果上 ...
- Winform下载文件并显示进度条
本来是要研究怎样判断下载完成,结果找到这个方法,可以在这个方法完成之后提示下载完成. 代码如下: using System; using System.Collections.Generic; usi ...
- [c#]WebClient异步下载文件并显示进度
摘要 在项目开发中经常会用到下载文件,这里使用winform实现了一个带进度条的例子. 一个例子 using System; using System.Collections.Generic; usi ...
- 解决jsp下载文件,迅雷下载路径不显示文件名称的问题
如果浏览器安装了迅雷的插件,在jsp页面调用java后台实现文件下载功能时,会自动弹出迅雷下载,迅雷的下载路径会显示.do或者.xhtml之类的,为了解决这个问题,jsp页面修改如下: 写一个< ...
随机推荐
- mybatis+springmvc+sqlite一个累心的问题:不在纠结
1 java.sql.SQLException: NYI 2 org.sqlite.RS.getColumnClassName(RS.java:269) 在配置mybatis+springmvc+sq ...
- Linux桌面词典 星际译王(StarDict)
星际译王(StarDict)是利用GTK(GIMP TOOLKIT)开发的国际化的.跨平台的自由的桌面字典软件.它并不包含字典档,使用者须自行下载配合使用.它可以运行于多种不同的平台,如Linux, ...
- ES6学习笔记(六)数组的扩展
1.扩展运算符 1.1含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // ...
- 干货分享 -- Math
昼猫笔记 JavaScript -- Math Math也是JS的内置对象,但是它不是一个构造函数,它属于一个工具类不用创建对象,它封装了数学运算相关的属性和方法,今天就来写下常用的函数[API(ap ...
- CSUOJ 1637 Yet Satisfiability Again!
1637: Yet Satisfiability Again! Time Limit: 5 Sec Memory Limit: 128 MB Description Alice recently s ...
- CSUOJ 1651 Weirdo
1651: Weirdo Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 40 Solved: 21[Submit][Status][Web Board ...
- C++里的模板
1.泛型编程 --即实现一个通用的标准容器库. 所谓通用的标准容器库,就是要做到:比方List类存放全部肯恩类型的对象这样的事:泛型编程让你编写一个全然一般化并可反复使用的算法,其效率与针对某特定数 ...
- zoj1942Frogger
Frogger Time Limit: 2 Seconds Memory Limit: 65536 KB Freddy Frog is sitting on a stone in the m ...
- Http post提交和get提交
public string PostParameter(string url) { string message=""; GetOrde ...
- 自定义控件之onMeasure
最近一直在接触自定义控件的知识,自己就尝试着写了一个小的demo,算是对自定义知识点进行下总结 今天先来看下自定义控件需要重写的三个重要方法 看代码 package com.example.testc ...