You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取另一台服务器上的Zip文件?能否通过FTP凭据实现?

可以通过FTP凭据提取远程服务器上的Zip文件吗?

当然可以!你完全可以借助FTP凭据来获取另一台服务器上的Zip文件,不过你提供的代码是把本地文件上传到FTP服务器的逻辑(用了ftp_put()),如果你的需求是将远程服务器上的Zip文件下载到本地,得改用ftp_get()函数来实现。

修正后的PHP代码示例

下面是针对“下载远程Zip文件到本地”场景的完整代码,我还加了必要的错误处理和被动模式配置(很多服务器需要这个才能正常传输):

// 本地要保存Zip文件的路径(比如当前目录下的local_abc.zip)
$dest = './local_abc.zip';
// 远程FTP服务器上Zip文件的完整路径(如果文件在FTP根目录就直接写文件名,否则要写全路径)
$source = 'abc.zip';

// 连接FTP服务器
$ftpConn = ftp_connect("ftp.example.com") or die("无法连接到目标FTP服务器,请检查地址是否正确");
// 使用凭据登录FTP
ftp_login($ftpConn, "username", "password") or die("FTP登录失败,请检查账号密码");

// 开启被动模式(绝大多数情况下需要这个,避免防火墙拦截)
ftp_pasv($ftpConn, true);

// 执行下载:从远程服务器获取文件到本地,用FTP_BINARY模式处理二进制文件(Zip属于二进制)
if (ftp_get($ftpConn, $dest, $source, FTP_BINARY)) {
    echo "远程Zip文件已成功下载到本地!";
} else {
    echo "下载失败,请检查远程文件路径、本地写入权限或FTP权限";
}

// 关闭FTP连接
ftp_close($ftpConn);

几个关键注意事项

  • 权限检查:确保你拥有远程FTP服务器上目标Zip文件的读取权限,同时本地保存路径要有写入权限
  • 路径准确性:如果远程Zip文件不在FTP根目录,一定要填写完整的远程路径(比如/files/abc.zip)
  • 被动模式:几乎所有的云服务器、防火墙环境都要求开启被动模式,不然FTP传输会被拦截
  • 二进制模式:处理Zip、图片这类二进制文件时,必须用FTP_BINARY模式,不能用文本模式(FTP_ASCII),否则文件会损坏

内容的提问来源于stack exchange,提问作者Dattaraj Mahajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:17:29