QT_http远程登录基于filebrowser搭建的文件服务器提供目录展示和下载功能

QT_http远程登录基于filebrowser搭建的文件服务器提供目录展示和下载功能

[项目背景]

        基于filebrowser搭建的文件服务器,管理员上传文件到该服务器,使用部门利用本软件实现远程登录http查看文件目录并选择自己所需的文件进行下载。

[实现目标]

        远程登录http站点、树形展示文件服务器、列表展示需要下载的文件(允许多个文件依次下载、可以增加和移除)。

[如下知识点的实际应用]

        1.使用treeWidget、QTreeWidgetItem搭建树图显示,包括获取节点路径、删除节点的应用。

        2.使用QJsonDocument、QNetworkAccessManager、QNetworkRequest、QNetworkReply实现http文件下载,不同于一般的下载,本例是先获取cookie并后续发送命令时携带cookie从而真正意义上实现文件下载的功能。

        3.根据点击的信号,实时动态获取文件夹的下级目录并显示。

        4.使用QEventLoop、eventLoop实现同步调用,槽函数readyRead实现异步调用。

        5.使用QJsonValue、QJsonObject解析json数据。

        6.使用QStandardItemModel实现列表展示,包括增加行、删除行的应用。

        7.NetworkError错误码转换为QString。

        8.Filebrowser是一款可以通过浏览器对服务器上的文件进行管理的软件。Filebrowser提供了一个在指定目录内进行文件管理的界面,可以用于上传、删除、预览、重命名和编辑文件。它允许创建多个用户,每个用户都可以拥有自己的目录。Filebrowser可以作为一个独立的应用程序,也可以作为一个网盘程序来使用。

        9.状态栏实时显示当前运行状态。

[界面]

[基本思路]

        第一步,发送登录信息http://10.xx.xx.xxx:xxxx/api/login,建立槽函数会获取网站返回的cookie,保存到变量headStr中。

        第二步,建立槽函数,点击树图发出路径查询命令http://10.xx.xx.xxx:xxxx/api/resources/xxx,建立槽函数获取网站返回的数据(网站返回的是json),解析json获得下一层子目录的文件信息nameList,再将nameList以树图的形式展现。

        注意点击树图发出路径查询命令时是需要携带cookie的,否则网站不予回应。这就是网络上一般的http下载例程不能有效运行的原因。

        第三步,点击下载,先检查信息完整性,根据下载列表框里的路径信息,发送下载命令http://10.xx.xx.xxx:xxxx/api/raw/xxx,建立槽函数获取网站返回的数据,全部读到本地文件中。

        同样发出下载命令时是需要携带cookie的,否则网站不予回应。

        其它注意事项:

        .pro文件增加QT       += network

        将http://10.xx.xx.xxx:xxxx更换成自己实际需要的ip地址:端口号,即可正常运行。

        注意连接、查询目录、下载各阶段的发送命令变化。    

[项目链接]    

        http远程登录基于filebrowser搭建的文件服务器提供目录展示和下载功能资源-CSDN文库

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值