FTP上传可以连接服务器,就是上传不了文件!

FTP上传可以连接服务器,就是上传不了文件!,第1张

首先解决看不见新上传文件的问题,上传成功后,断开连接,重新再连接一下,应该就能看到了
其次删除不了里面的文件那就要看ftp服务器的目录设置的权限了,是否针对局域网内某电脑设置了诸如只读\写入\续传\重命名\删除\等权限,需要改动提供ftp服务的那台电脑的ftp服务器设置

大哥,我不知道你用FTP在局域网里做什么。错误我也没遇到过。
我是这样处理局域网文件的:
1设置工作组,设置密码,设置共享。
2使用OFFICE的GROOVE软件。(离线可以处理文件,外网一样可以用)
你的方法比较老土了。我说二种方法都可以实现。

要看你是通过何种方式传输的文件,如果直接通过共享,是没问题的。如果是通过一些软件比如qq一类传输文件的话,会因为一些安全设置自动改文件名。还有一些网站或者其他>客户机发送:
void sendFile(char filename[256], SOCKET cli_s)
{
    using namespace std;
    ifstream sendFile(filename,  ios::binary); //二进制打开
    sendFileseekg(0, ios::end); //定位文件尾部
    int len = ftellg(); //取出文件长度
    send(cli_s, &len, sizeof(len), 0); //发送文件长度
    sendFileseekg(0, 0); //定位文件头部
    char sendBuf[4096];
    int readBytes;
    while (!sendFileeof()){
  readBytes = sendFileget(sendBuf, sizeof(sendBuf));
  if (readBytes>0) //逐个发送,直到读不出数据
        send(cli_s, sendBuf, readBytes, 0);
    }
    sendFileclose();
}
服务器接收:
void recvFile(char filename[256], SOCKET newsock)
{
    using namespace std;
    int len = 0;
    recv(newsock, &len, sizeof(len), 0); //先接收文件长度
    if (len==0)
             return;
    ofstream recvFile(filename, ios::out | ios::app | ios::binary);//二进制
    char recvBuf[4096];
    int receivedBytes;
    while(len>0) { //len表示残余长度
    receivedBytes = recv(newsock, recvBuf, sizeof(recvBuf), 0);
    if (receivedBytes>0) { //读到数据了
        recvFile << recvBuf;
        len -= receivedBytes; //残余长度递减
    }
    }
    recvFileclose();
}

strlen只对英文有效。如果是中文的话,strlen是不准确的。只能按照二进制的方式来读写文件。

如果按照二进制的方式进行网络传输的话,接收端无法知道何时结束接收。所以通常,在发送数据流之前,先发送出去数据长度,这样接收端就知道何时结束接收数据了。

缓冲太小的话,读写文件次数会增多,影响性能。缓冲太大的话,占用内存多,而且堆栈上分配不出大的缓存。一般写65536一下吧,更详细的可以自己百度去。

应该是21端口不支持FXP的原因 更换ftp服务端口为非21端口 比如2121 试试? FXP是一个服务器之间传输文件的协议,这个协议控制着两个支持FXP协议的服务器,在无需人工干预的情况下,自动地完成传输文件的 *** 作。在我们的客户机上,可以简单的发送一个传输的命令,即可控制服务器从另一个FTP服务器上下载一个文件,下载过程中,无须客户机干预,客户机甚至可以断网关机。这种协议通常只适用于管理员作管理的用途,在一般的公开FTP服务器上,是不会允许FXP的,因为这样会浪费服务器资源,而且有可能出现安全问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13335156.html

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

发表评论

登录后才能评论

评论列表(0条)

保存