qt实现ftp创建文件夹命令

qt实现ftp创建文件夹命令,第1张

本文实例为大家分享了QT实现FTP上传文件的具体代码,供大家参考,具体内容如下

两台电脑通过网线建立本地连接,保证网关在同一段;

服务器端打开ftp;

控制面板→程序→启用或关闭windows功能→windows功能→Internet信息服务

启用“FTP服务”FTP扩展性” IIS管理控制台”

开始屏幕的搜索中输入“IIS”,然后点击打开“IIS管理器”

打开“IIS管理器”后,在左栏的“网站”上点击右键,打开“添加FTP站点”

然后按照提示填写站点信息

点击“下一步”,按照下图提示,设置“绑定和SSL设置”,在“IP地址”处,可以用内网IP也可以用外网IP,访客自然也就根据你的IP设定来决定

点击“下一步”,设置“身份验证和授权信息”

然后在本机浏览器地址栏中输入“ftp://填写的IP”测试一下

客户端网页测试远程访问;

客户端(另一台电脑)浏览器地址栏中输入“ftp://填写的IP”测试一下

客户端cmd测试远程访问;

win+r打开运行窗口,输入cmd

回车打开cmd命令窗口

cmd命令中输入:ftp回车

回车切换至ftp命令窗口,输入命令:open,回车提示:到

到即所要连接测试的ftp地址,我们输入:IP 22

即:ip地址+空格+端口号,没有+号

回车后弹出用户一行,输入ftp的用户名后回车,输入ftp用户名对应的密码

输入密码后回车,如果提示,user logged in就说么ftp创建无问题

客户端程序测试远程访问。

新建程序,添加ftpclass.cpp、ftpclass.h,复制main.cpp内容到程序入口函数

注意:/项目-属性-常规-字符集-使用多字节字符集/

//main.cpp

#include "stdafx.h"

#include "ftpclass.h"

void main()

{

printf("------- 开始测试!------\n")

printf("01--创建连接 %d\n", FtpClass::createConnection())

printf("02--打开目标ftp %d\n", FtpClass::createTable())

/*可以读取ini内参数

FtpClass::ftp_Ip = TEXT("Ini读取")

FtpClass::ftp_Port = TEXT("Ini读取")

FtpClass::ftp_User = TEXT("Ini读取")

FtpClass::ftp_Password = TEXT("Ini读取")

FtpClass::ftp_Fixed_Path = TEXT("Ini读取")*/

printf("03--创建文件夹 %d\n", FtpClass::createFolder("自动生成目录1","自动生成目录2","自动生成目录3"))

/*上传目标路径*/

printf("04--上传文件 %d\n", FtpClass::insert( "D:/a.txt", "b.txt"))

/*本机文件需要上传文件*/ /*上传后文件名称,可以和本地文件名称不一样,类型最好别换*/

printf("05--关闭通讯 %d\n", FtpClass::createClose())

printf("------ 结束测试!------\n")

return

}

//ftpclass.h

/*项目-属性-常规-字符集-使用多字节字符集*/

/*wininet.lib、shlwapi.lib可以直接添加到附加依赖项*/

/*BOOL_VERIFY、NULL_VERIFY 程序结束判断*/

#pragma once

#pragma comment(lib,"wininet.lib")

#pragma comment(lib,"shlwapi.lib")

#define BOOL_VERIFY(emStatus_bool,switch_bool) \

if (emStatus_bool == true)\

{return true}\

else{\

if (switch_bool == 3) printf(" FTP_03_err:创建文件夹失败!%d\n")\

if (switch_bool == 4) printf(" FTP_04_err:上传文件失败!\n")\

if (switch_bool == 5) printf(" FTP_05_err:关闭窗口句柄失败!\n")\

return false\

}

#define NULL_VERIFY(emStatus_null,switch_null) \

if (emStatus_null != NULL)\

{return true}\

else{\

if (switch_null == 1) {printf(" FTP_01_err:打开通讯错误 Error:%d\n", GetLastError())}\

if (switch_null == 2) {printf(" FTP_02_err:建立连接错误 Error:%d\n", GetLastError())}\

return false\

}

#include "stdafx.h"//没用

#include <afxinet.h>//MFC相关

#include "wininet.h"//调用FTP相关类

#include "shlwapi.h"//调用文件操作相关类

class FtpClass

{

public:

/*ini读取变量*/

static CString ftp_Ip//目标ip

static CString ftp_Port//目标端口

static CString ftp_User//目标账户

static CString ftp_Password//目标密码

static CString ftp_Fixed_Path//目标固定路径

static CString ftp_Free_Path//目标自己生成路径

/*全局变量*/

static BOOL pRes

static HINTERNET hInternet

static HINTERNET hConnect

/*全局函数*/

static bool createConnection() //创建一个连接

static bool createTable()

static bool ThreadInternetConnect(PVOID )

//打开目标ftp

static bool createFolder(CString temp1, CString temp2, CString temp3) //上传文件

static bool insert(CString temp, CString temp1) //出入数据

static bool createClose() //断开连接

}

//ftpclass.cpp

#include "stdafx.h"

#include "ftpclass.h"

CString FtpClass::ftp_Ip = TEXT("192.168.3.104")

CString FtpClass::ftp_Port = TEXT("21")

CString FtpClass::ftp_User = TEXT("Administrator")

CString FtpClass::ftp_Password = TEXT("xinxin")

CString FtpClass::ftp_Fixed_Path = TEXT("1级固定目录/2级固定目录/3级固定目录")

CString FtpClass::ftp_Free_Path = TEXT("自动生成目录")

BOOL FtpClass::pRes = false

HINTERNET FtpClass::hInternet = NULL

HINTERNET FtpClass::hConnect = NULL

//创建一个连接

bool FtpClass::createConnection() {

/*ftp_Ip = TEXT("Ini读取")

ftp_Port = TEXT("Ini读取")

ftp_User = TEXT("Ini读取")

ftp_Password = TEXT("Ini读取")

ftp_Fixed_Path = TEXT("Ini读取")*/

hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT,

NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE)

NULL_VERIFY(hInternet,1)

}

bool FtpClass::ThreadInternetConnect(PVOID param) {

// 打开http

hConnect = InternetConnect(hInternet, ftp_Ip, INTERNET_DEFAULT_FTP_PORT,//INTERNET_DEFAULT_FTP_PORT 第三个参数默认值21

ftp_User, ftp_Password, INTERNET_SERVICE_FTP,

INTERNET_FLAG_EXISTING_CONNECT || INTERNET_FLAG_PASSIVE, 0)

return 1

}

//打开目标ftp

bool FtpClass::createTable()

{

/*hConnect = InternetConnect(hInternet, ftp_Ip, 25,//INTERNET_DEFAULT_FTP_PORT 第三个参数默认值21

ftp_User, ftp_Password, INTERNET_SERVICE_FTP,

INTERNET_FLAG_EXISTING_CONNECT || INTERNET_FLAG_PASSIVE, 0)

NULL_VERIFY(hConnect,2)*/

HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadInternetConnect, (LPVOID)NULL, 0, NULL)

//超时3秒,如果等待结果是超时

if (WaitForSingleObject(hThread, 3 * 1000) == WAIT_TIMEOUT) {

TerminateThread(hThread, 0)

CloseHandle(hThread)

NULL_VERIFY(hConnect, 2)

}

NULL_VERIFY(hConnect, 2)

}

//上传文件

bool FtpClass::createFolder(CString temp1, CString temp2, CString temp3)

{

/*新建文件件每次只能创建一级,多个需要分多次创建*/

pRes = false

ftp_Free_Path = ""

ftp_Free_Path = ftp_Fixed_Path + "/" + temp1

FtpCreateDirectory(hConnect, ftp_Free_Path)

ftp_Free_Path = ftp_Free_Path + "/" + temp2

FtpCreateDirectory(hConnect, ftp_Free_Path)

ftp_Free_Path = ftp_Free_Path + "/" + temp3

pRes = FtpCreateDirectory(hConnect, ftp_Free_Path)

BOOL_VERIFY(pRes,3)

}

//出入数据

bool FtpClass::insert(CString temp, CString temp1)

{

pRes = false

ftp_Free_Path = ftp_Free_Path + "/" +temp1

pRes = FtpPutFile(hConnect, temp,/*本机文件*/

ftp_Free_Path, /*TEXT("一级目录/二级目录/三级目录/a.txt"),*/

FTP_TRANSFER_TYPE_ASCII, 0)

BOOL_VERIFY(pRes,4)

}

//断开连接

bool FtpClass::createClose()

{

pRes = false

if (InternetCloseHandle(hConnect))

pRes = InternetCloseHandle(hInternet)

BOOL_VERIFY(pRes,5)

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

在server机器上创建两个用户!这些用户是用来登录到FTP的!我的电脑右键->管理->本地用户和组->用户->“右键”新建用户->输入用户名和密码再点创建就行了。

在C盘新建文件夹“C:\FTP上传”,并在此文件下新建“LocalUser”文件夹,并在此文件夹下创建“Public”(这个是公共文件夹)、“xxx”和“xxx1”文件夹(xxx和XXX1必须与创建的本地用户相同)。在C盘新建文件夹“C:\FTP下载”!并在每个文件夹里放不同的文件,以便区分。

安装IIS组件!在开始菜单里—>控制面板-〉添加或删除程序->添加/删除windows组件->应用程序服务器->详细信息->IIS-〉详细信息-〉FTP-〉确定-〉完成!这样就把FTP安装在服务器上了。

配置FTP服务器,创建上传和下载服务!创建上传服务器:右键FTP站点->选择新建FTP站点->描述可以根据自己的需要填写->地址一般都是server的地址,端口就用默认的21吧->因为是提供上传服务的,所以就用隔离用户啦->它的目录指向“C:\FTP上传”->访问权限要钩上“读取”和“写入”啦(图片上错了的~)->点击完成就把上传的服务创建好了!创建下载服务器:因为21号端口已经被占用所以我们就用2121端口!不隔离用户!它的目录指向“C:\FTP下载”!只有读取权限!就简单的几步我们就把一个FTP服务器创建好了

在XP主机上测试已经完成安装的FTP服务器!我们在XP主机上输入FTP服务器的IP地址FTP://192.168.1.2就能打开上传的FTP页面,输入FTP://192.168.1.2:2121就能打开下载页面了!我们还可以用之前创建的那两个用户去登录FTP服务器!因为只有上传服务提供了用户文件夹!所以只有登录到上传服务时才能打开用户文件夹!这个文件夹是用专用的,其它用是无法对里面的文件进行操作的!我们还能成功地在下载服务器里下载文件到XP主机上了。

1、首先,我们创建一个用于登录FTP以进行操作的用户帐户。右键单击我的桌面并选择“管理选项”,转到“管理”界面,然后打开“本地用户和组”选项。我们可以在列表中看到用户选项。

2、然后右键单击用户选项,从下拉菜单中选择新用户,开始构建我们的用户,填写用户名和密码。描述可以留空。然后单击Create。创建后,您将在右侧的用户列表中看到我们创建的用户。

3、用户创建完成后,我们开始添加IIS程序服务。打开计算机的“开始”菜单,找到“控制面板”选项并将其打开。

4、转到控制面板界面查找程序选项,单击下面的卸载程序按钮进入安装程序列表界面。

5、转到程序和功能选项卡,我们可以看到有一个选项可以在左上角的菜单栏中打开或关闭Windows,单击进入。

6、转到Windows功能界面打开或关闭,我们擅长Internet信息服务,然后单击打开FTP服务器的前端,即勾选其子菜单的FTP服务和FTP可扩展性,然后单击按下OK按钮。

7、添加IIS服务后,开始创建我们的FTP站点,右键单击我的电脑并选择管理,然后找到服务和应用程序选项,单击打开,然后单击Internet信息服务管理 - 此时我们可以看到连接右框架。

8、单击打开连接框下方的本地主机主页,然后您可以看到应用程序池和网站选项,我们右键单击该网站以选择添加网站。

9、然后在弹出的添加网站框中输入我们的网站名称,物理路径是我们的FTP本地文件夹,我们可以在磁盘中创建新的,然后选择添加,IP地址选择我们的本地IP地址。

10、创建我们的FTP后,我们可以看到我们刚刚在网站下面创建了一个网络,右键单击网站名称,选择添加FTP站点发布,然后启动绑定和SSL设置,端口号选择2121.IP地址填写本地IP地址。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/292006.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-24
下一篇2023-04-24

发表评论

登录后才能评论

评论列表(0条)

    保存