1.编译时找不到.a后缀的静态库
大多数讲解QFtp配置的文章中都提到了讲pro文件中的config -= static改为config += static以生成静态库。但是需注意一点,msvc编译器与gnu编译器生产的静态库文件是不同的,msvc下的静态库文件是.lib后缀,而gnu下的静态库文件是.a后缀。
2.提示QFtp未进行login操作
ftp服务器的登录分为匿名登录和非匿名登录,匿名登录情况下,在m_ftp->connectToHost(server_name)完成之后,需调用m_ftp->login()函数进行登录操作;而非匿名情况下,在m_ftp->connectToHost(server_name)完成之后,需调用m_ftp->login(user_account,user_password)函数进行登录操作(即login操作需配置用户账号与密码)。
3.下载文件大小为0
QFtp大部分操作为异步操作,在调用m_ftp->get(server_path,m_file);后,文件其实并未开始下载,只有在QFtp::commandFinished信号中Get执行结束时,文件内容从服务器写入到了内存中,因此在对应的槽函数中需进行m_file->close();操作,同时为进行下一文件的下载,需delete m_file;等到需要时重新实例化。而文件上传的put操作与此同理,需在QFtp::commandFinished信号中Put执行结束时进行m_file的关闭及删除操作。
4.QFtp示例程序进度条异常弹出造成程序崩溃
在QFtp中,官方提供了名为“example”的示例文件,在QFtp成功配置之后,该程序可以正常运行,但是程序启动之后,进度条总会异常弹出。这是由于进度条在实例化之后默认弹出,要解决这个问题,在进度条实例化代码之后加一行:progressDialog->reset();即可;
5.QFtp示例程序乱码
原因为文件路径中含有中文字符,此问题在网上有很多叙述,而我在之前的博客https://blog.csdn.net/qq_18350351/article/details/103740891也可作为参考。