当前位置:首页 » 文件管理 » c上传ftp

c上传ftp

发布时间: 2022-10-24 02:08:00

1. 你好,这个你解决了吗c语言如何用ftpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!

先后使用InternetOpen和InternetConnect打开连接。使用CreateFile函数打开本地文件。使用FtpOpenFile函数打开远程文件。分别使用InternetReadFile和ReadFile函数读取
FTP
或本地文件。分别使用InternetWriteFile和WriteFile函数写入
FTP
或本地文件。使用CloseHandle函数关闭本地文件句柄。使用InternetCloseHandle函数关闭
FTP
文件句柄。

2. 在linux中如何用C语言实现FTP上传

ftp协议还是比较麻烦的,FTP上传一般用script实现,几行就行。若用C写,起码4,5百行。

3. C语言实现从FTP下载、上传文件

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
1.C语言可以使用CStdioFile函数打开本地文件。使用类CInternetSession 创建并初始化一个Internet打开FTP服务器文件。
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。
如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。
如果使用OpenURL在Internet服务器上打开一个URL,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,HTTP,FTP或Gopher)行为,必须与此服务器建立适当的连接。

4. c++ FTP上传文件。

给你个例子
#include <afxinet.h>
void main()
{
BOOL dRes,pRes;
HINTERNET hInternet;
HINTERNET hConnect;
hInternet = InternetOpen("A3GS Sample", INTERNET_OPEN_TYPE_DIRECT,
NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE);
if ( NULL == hInternet )
{
printf("InternetOpen Error:%d\n", GetLastError() );
}
hConnect = InternetConnect(hInternet, "127.0.0.1", INTERNET_DEFAULT_FTP_PORT,
"ww123", "12345", INTERNET_SERVICE_FTP,
INTERNET_FLAG_EXISTING_CONNECT || INTERNET_FLAG_PASSIVE,0 );
if ( NULL == hInternet )
{
printf( "InternetConnect Error:%d\n", GetLastError() );
InternetCloseHandle(hInternet);
}

dRes = FtpGetFile(hConnect, "./wwyy/download/test1.txt", "D:\\BT\\test1.txt", FALSE,
FILE_ATTRIBUTE_ARCHIVE, FTP_TRANSFER_TYPE_UNKNOWN, 0);
if ( dRes == 0 )
{
printf( "FtpGetFile Error:\n", GetLastError() );
}else{
printf( "下载文件成功!\n" );
}
pRes = FtpPutFile(hConnect,"D:\\BT\\hhsj.txt","hhsj.txt",FTP_TRANSFER_TYPE_ASCII,0);
if(pRes==0)
{
printf("上传文件失败!\n");
}else{
printf("上传文件成功!\n");
}
InternetCloseHandle(hConnect);
InternetCloseHandle(hInternet);
if(dRes&&pRes) return true;
else return false;
}

5. 关于C语言FTP服务器上传数据实现方法

FTP服务器是现成的 ? 那你就是要写客服端咯。 看FTP协议跟socket套接字。

6. 怎么用cftpconnection类编写向ftp server上传文件

为了与FTP Internet服务器通讯,必须先创建一个CInternetSession实例,然后创建CFtpConnection对象。创建CFtpConnection对象不采用直接方式,而是调用CInternetSession::GetFtpConnertion来创建并返回一个指向它的指针。

CFtpConnection类的成员

构造函数 CFtpConnection 构造一个CFtpConnection对象

操作 SetCurrentDirectory 设置当前FTP目录

GetCurrentDirectory 获取此次连接的当前目录

GetCurrentDirectoryAsURL 获取作为URL的此次连接的当前目录

RemoveDirectory 从服务器移去指定目录

CreateDirectory 在服务器上构造一个目录

Rename 将服务器上的文件改名

Remove 从服务器上移去一个文件

PutFile 将一个文件放到服务器上

GetFile 从连接的服务器上获取一个文件

OpenFile 在连接的服务器上打开一个文件

Close 关闭与服务器的连接

实例一:上传文件
CString strAppName = AfxGetAppName();
CInternetSession* pSession = new CInternetSession(strAppName);
CFtpConnection* pConn = pSession->GetFtpConnection("
10.46.1.232","Anonymous","",21);
pConn->SetCurrentDirectory("test");
CString strLocfile,strRemotefile;
strLocfile="C:\\cmd.txt";
strRemotefile="cmd.txt";
pConn->PutFile(strLocfile,strRemotefile,FTP_TRANSFER_TYPE_ASCII);
pConn->Close();
return 0;
实例二:Ftp的打开文件操作函数:OpenFile

7. C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!

  1. 先后使用InternetOpen和InternetConnect打开连接。
  2. 使用CreateFile函数打开本地文件。
  3. 使用FtpOpenFile函数打开远程文件。
  4. 分别使用InternetReadFile和ReadFile函数读取 FTP 或本地文件。
  5. 分别使用InternetWriteFile和WriteFile函数写入 FTP 或本地文件。
  6. 使用CloseHandle函数关闭本地文件句柄。
  7. 使用InternetCloseHandle函数关闭 FTP 文件句柄。

8. 如何在unix下,c语言中实现ftp文件传输

nt FtpInit(char* Host,char* Account,char* Passwd)
{
short shPortNumber;
long lAddr;
char RecvBuf[1024];
char SendBuf[1024];
int RecvLen,SendLen;

shPortNumber=htons(21);
lAddr=inet_addr(Host);
memset(HostName,0,16);
memcpy(HostName,Host,strlen(Host));
hClient=socket(AF_INET,SOCK_STREAM,0);
if (hClient<0)
{
return -1;
}
if(setsockopt(hClient,SOL_SOCKET,SO_RCVTIMEO,(char *)&rcvtime,sizeof(int)))
{
close(hClient);
return -1;
}

if(setsockopt(hClient,SOL_SOCKET,SO_KEEPALIVE,(char *)&keepalive,sizeof(int)))
{
close(hClient);
return -1;
}
SockAddr.sin_family = AF_INET;
SockAddr.sin_addr.s_addr = lAddr;
SockAddr.sin_port = shPortNumber;

if (connect(hClient,(const struct sockaddr *)&SockAddr,sizeof(SockAddr))<0)
{
close(hClient);
return -1;
}

memset(RecvBuf,0,1024);
if((RecvLen=FtpMatchReceive(hClient,RecvBuf, "220 ",1024))<=0)
{
close(hClient);
return -1;
}
if(SendLen=GetFtpSendBuf("USER",Account,SendBuf,1024)<=0)
{
close(hClient);
return -1 ;
}
if(SendFTPCommand(hClient,SendBuf)!=331)
{
close(hClient);
return -1;
}
if(SendLen=GetFtpSendBuf("PASS",Passwd,SendBuf,1024)<=0)
{
close(hClient);
return -1 ;
}
if(SendFTPCommand(hClient,SendBuf)!=230)
{
close(hClient);
return -1;
}

}
int FtpGetFile(char * FileName)
{
int hListenSocket;
int hDataSocket;
int RetWriteFile;
int ReturnCode;
char RemoteFileName[256];
char RemoteFile[256];
char ExecCommand[256];
char * pcSubDir;

memset(RemoteFileName,0,256);
memset(RemoteFile,0,256);
memset(ExecCommand,0,256);

strcpy(RemoteFileName,FileName);
memcpy(ExecCommand,"CWD ",4);

pcSubDir=strrchr(RemoteFileName,'\\');
if (pcSubDir !=NULL)
{
strncat(ExecCommand,RemoteFileName,RemoteFileName-pcSubDir);
if(SendFTPCommand(hClient,ExecCommand)!=250)
{
close(hClient);
return -1;
}
strcpy(RemoteFile,pcSubDir);
}
else
{
strcpy(RemoteFile,RemoteFileName);
}

if((hListenSocket=CreatListenSocket(hClient))<0)
{
close(hClient);
return -1;
}
if(RequestDataConnection(hClient,hListenSocket)<0)
{
close(hClient);
return -1;
}
memset( ExecCommand,0,256);
memcpy( ExecCommand,"RETR ",5);
strcat( ExecCommand,RemoteFile);
printf("The FileName=%s\n",RemoteFile);
strcat( ExecCommand,"\r\n");

ReturnCode=SendFTPCommand(hClient,ExecCommand);
if(ReturnCode!=150)
{
close(hClient);
return -1;
}
if((hDataSocket=AcceptDataConnection(hListenSocket))<0)
{
close(hClient);
return -1;
}
if((RetWriteFile=WriteFile(hDataSocket,RemoteFile))<0)
{
close(hDataSocket);
close(hClient);
return -1;
}

}

9. 如何用c语言实现http ftp的上传功能

hehe ..这是因为FTP跟HTTP根本不是同一种类型服务器。FTP专门是用来下载上传用的,可以算做一个网络硬盘吧..而HTTP服务器一般是WEB服务器..性质完全不一样,就好象你家里的厨房和厕所一样,功能完全不一样嘛你总不可能在厕所想做饭,在厨房想上厕所对不对,没有任何办法..你只能按最直接的地址下载

如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la

10. 求助linux下用C写一个连接FTP服务器上传下

1.Linux下目录复制:本机->远程服务器

1
2

scp -r /home/shaoxiaohu/test1 @192.168.0.1:/home/test2
#test1为源目录,test2为目标目录,@192.168.0.1为远程服务器的用户名和ip地址。

2.Linux下目录复制:远程服务器->本机

1
2

scp -r @192.168.0.1:/home/test2 /home/shaoxiaohu/test1
#@192.168.0.1为远程服务器的用户名和ip地址,test1为源目录,test2为目标目录。

注:如果端口号有更改,需在scp 后输入:-P 端口号 (注意是大写,ssh的命令中 -p是小写)

热点内容
mr底层算法 发布:2025-07-04 23:14:59 浏览:779
怎么注册作业盒子密码 发布:2025-07-04 23:14:51 浏览:923
速达服务器ip 发布:2025-07-04 23:07:38 浏览:261
哪里能下载安卓版刺激战场 发布:2025-07-04 23:02:27 浏览:519
android微信推送消息推送消息 发布:2025-07-04 22:56:52 浏览:386
android分享文件 发布:2025-07-04 22:56:40 浏览:404
c语言方程的根 发布:2025-07-04 22:55:33 浏览:448
什么电脑单机游戏好玩又免费配置低 发布:2025-07-04 22:51:27 浏览:420
真香配置有哪些 发布:2025-07-04 22:49:05 浏览:207
安卓在哪里找游戏 发布:2025-07-04 22:15:25 浏览:243