栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux环境下libcurl应用总结,实现FTP文件上传

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux环境下libcurl应用总结,实现FTP文件上传

目录
  • 概述
  • libcurl的移植
  • libcurl实现FTP上传
    • FTP服务器搭建
    • ftpupload.c编译验证
  • API使用
  • 常见问题

概述

libcurl是一个免费的C语言开发库,支持HTTP、FTP、Telnet、SFTP等URL传输。例如实现FTP文件上传,使用该库函数来开发非常的便捷可靠。

libcurl的移植

libcurl库源码下载官网地址:https://curl.se/download.html
下载源码:curl-7.79.1.tar.gz
1.解压源码:tar -xzvf curl-7.79.1.tar.gz
2.运行配置文件:./configure --prefix=/home/boyee/b_libcurl --host=arm-linux CC=arm-linux-gcc CXX=arm-linux-gcc --with-wolfssl

–prefix:指定安装目录,编译后生成的文件放在此目录,必须是绝对路径;
–host: 指定交叉编译工具, 和编译 Linux 的编译器一致
CC: arm平台所使用的交叉编译工具
–with-wolfssl:编译需要带这个参数,否则编译可能会出错。

3.编译:执行make过后,再执行make install。
4.将/home/boyee/b_libcurl/bin拷贝到开发板的/bin目录下,将/home/boyee/b_libcurl/lib拷贝到开发板的/lib目录下。
5.执行curl –version,查看版本号。
移植完成。

libcurl实现FTP上传

下载的源码里面有很多示例,例如FTP上文件的代码:curl-7.79.1docsexamplesftpupload.c
实验目的:采用FileZilla server搭建FTP服务器,编译ftpupload.c源码,实现FTP上传文件到FTP服务器功能。

FTP服务器搭建
  1. 下载绿色免费的FileZilla Server软件搭建FTP服务器:https://download.csdn.net/download/fengweibo112/33592377

  2. 搭建一个不需要登录的FTP服务器。

1.以管理员身份运行”FileZilla server.exe”,开启FTP服务器
2.以管理员身份运行”FileZilla Server Interface.exe”,配置FTP服务器,配置方法如下图:连接到服务器默认配置,点击确认①,创建anonymous用户,设置共享目录和权限。

  1. 确认FTP服务器可以正常登录访问
ftpupload.c编译验证

ftpupload.c文件需要修改两个部分,1.修改FTP的服务器地址,2.修改需要上传文件的绝对路径:

交叉编译代码执行指令如下:
arm-linux-gcc -I /home/boyee/b_libcurl/include/ -L /home/boyee/b_libcurl/lib/ -o ftpupload ftpupload.c -lcurl -ldl

-I 指定了 curl.h 所在路径,
-L 指定 curl的 lib 库路径,即libcurl.a所在目录。
-o 编译生成的文件名为ftpupload,ftpupload.c是源程序文件;
-lcurl指明要链接静态库文件libcurl.a。

将生成的ftpupload上传到开发板,chmod修改权限。
执行结果如下:

# ./ftpupload 
Local file size: 737 bytes.
*** We read 737 bytes from file
#

执行过后,在服务器上可以查看到已上传了”renamed-and-fine.txt”文件,该文件内容即为上传的文件。

API使用

curl_easy_setopt
设置各种curl参数
curl_easy_perform
执行curl操作
curl_easy_getinfo
未完待续…

常见问题

问题:curl安装时出现:configure: error: select TLS backend(s) or disable TLS with --without-ssl.
解决方法:末尾加上参数 --with-wolfssl即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号