首页 > 其他分享 >ftp的主动模式和被动模式以及被动模式未打开造成的文件上传不成功

ftp的主动模式和被动模式以及被动模式未打开造成的文件上传不成功

时间:2023-07-26 16:22:31浏览次数:20  
标签:ftp 被动模式 FTP 端口 服务器 上传 客户端

先说问题:最近有个需求,上传一些文件到ftp服务器,代码在linux服务器上运行ok,档案正常上传到了ftp服务器。代码如下:

$ftp_server = "";
$port = 21;
$username = "";
$password = "";
$filename = "aa.csv";
$remote_file = "aa.csv";

$ftp = ftp_connect($ftp_server,  $port);
$login_result = ftp_login($ftp, $username, $password);
$res = ftp_put($ftp, $remote_file,  $filename, FTP_ASCII);
ftp_close($ftp);

 

然而放到windows系统的IIS服务器后,发现了10个档案只随机上传成功了1-5个,而且1k左右的文件也传输了好久。有经验的同事加了一行代码,代码在IIS上成功运行,文件全部快速的传到了ftp服务器上。

$ftp_server = "";
$port = 21;
$username = "";
$password = "";
$filename = "aa.csv";
$remote_file = "aa.csv";

$ftp = ftp_connect($ftp_server,  $port);
$login_result = ftp_login($ftp, $username, $password);
ftp_pasv($ftp, true); //windows防火墙,打开被动模式
$res = ftp_put($ftp, $remote_file,  $filename, FTP_ASCII);
ftp_close($ftp);

 上面的代码在linux 上运行,又出现了10各档案只随机上传成功了1-5个的情况。

 

这里补一下FTP主动模式的被动模式的知识:

主动模式:

FTP客户端使用N(N>1023)端口连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端开放N+1端口,发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据.

被动模式:

FTP客户端使用N(N>1023)连接FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再通过N+1端口连接到服务器开放的端口进行数据传输

区别对比

二者的区别主要在于建立数据传输连接的时候,主模式的连接发起方为服务器端,使用20号端口连接客户端的N+1端口建立数据连接;被动模式连接发起方为客户端,客户端使用端口号+1去连接服务器的某一高位端口;

网络设置区别

主动模式下,客户端的FTP软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段即可。

标签:ftp,被动模式,FTP,端口,服务器,上传,客户端
From: https://www.cnblogs.com/caroline2016/p/17582798.html

相关文章

  • fastapi文件上传下载
    importosimporttimefromfastapiimportAPIRouter,File,UploadFilefromfastapi.responsesimportFileResponserouter=APIRouter(tags=['Upload'],prefix='/upload')@router.post("",summary='文件上传')defcreate(up......
  • 文件上传
    一、前端页面三要素1.表单项type="file";2.表单提交方式post;3.表单的enctype属性multipart/form-data二、服务端接收文件类:MultipartFile三、本地存储1.MultipartFile的方法(1)StringgetOriginalFilename();//获取原始文件名(2)voidtransferTo(Filedest);//将接收的......
  • FTP命令详解
    http://www.chinaunix.net/jh/15/81780.html[精华]FTP命令详解作者:haizhz0928FTP命令详解 --------------------------------------------------------------------------------  FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使......
  • 私服资源上传与下载
    在pom中配置  点击这个可以查看仓库中的东西 点击这个发布上传 因为版本是snapshot所以发布之后也是在这个仓库里,可以修改 改成release所有都要改,包括继承与这个项目里的(不改也行,不过太乱)      ......
  • php文件上传
    1、前端<formaction="upload_file.php"method="post"enctype="multipart/form-data">    <labelfor="file">文件名:</label>    <inputtype="file"name="file"id="file">......
  • centos 5 yum安装与配置vsFTPd FTP服务器
    24Comments文章目录[隐藏]什么是vsftpd安装vsftpd配置防火墙配置vsftpd服务器添加ftp用户出现的错误vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。 什么是vsftpdvsftpd是一款在Linux发行版中最受推崇的FTP......
  • odoo16 Controller文件上传
    服务端1importlogging2importjson3frombase64importb64encode4fromodooimporthttp,SUPERUSER_ID,_5fromodoo.httpimportrequest67_logger=logging.getLogger(__name__)89classMain(http.Controller):[email protected]('......
  • php - 支持word上传的富文本编辑器
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • asp - 支持word上传的富文本编辑器
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • asp.net - 支持word上传的富文本编辑器
    ​  自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器)中时,编辑器都无法自动上传图片。需要用户手动一张张上传Word图片。如果只有一张图片还能......