通过 FTP(文件传输协议)服务器提交文件,通常有以下几种常见方式,具体取决于你的操作系统、技术背景以及是否需要自动化处理。
以下是详细的操作指南:
图形界面方式(适合普通用户)
如果你不熟悉命令行,使用图形化 FTP 客户端是最简单的方式。
使用专业 FTP 客户端(推荐)
-
FileZilla(免费、开源、跨平台)
- 下载并安装 FileZilla。
- 打开软件,在顶部输入:
- 主机 (Host):
ftp.yourdomain.com或 IP 地址 - 用户名 (Username): 你的 FTP 账号
- 密码 (Password): 你的 FTP 密码
- 端口 (Port): 通常为
21(如果是 SFTP 则为22)
- 主机 (Host):
- 点击 “快速连接” (Quickconnect)。
- 左侧是你的本地电脑文件,右侧是服务器文件。
- 将左侧文件拖拽到右侧目录中,等待传输完成。
-
WinSCP(Windows 平台,支持 FTP/SFTP/SCP)
操作逻辑与 FileZilla 类似,界面更简洁,适合 Windows 用户。
使用操作系统自带功能
-
Windows:
- 打开“此电脑”或“文件资源管理器”。
- 在地址栏输入:
ftp://你的服务器IP或域名 - 按回车,弹出登录框,输入用户名和密码。
- 像操作普通文件夹一样,复制粘贴文件到该窗口中。
- 注意:Windows 原生 FTP 支持有限,大文件或大量文件传输时容易断开,建议用客户端。
-
macOS:
- 打开 Finder(访达)。
- 菜单栏选择 前往 (Go) > 连接服务器 (Connect to Server)。
- 输入:
ftp://你的服务器IP或域名 - 点击连接,输入凭证即可。
命令行方式(适合开发者/运维)
Linux/macOS 终端(使用 ftp 或 lftp 命令)
基础 ftp 命令:
# 连接到服务器 ftp ftp.yourdomain.com # 输入用户名和密码 # 进入目标目录 cd /path/to/remote/directory # 上传单个文件 put local_file.txt # 上传整个目录(需先创建远程目录) mkdir remote_dir cd remote_dir mput local_dir/
推荐使用 lftp(更稳定,支持断点续传):
lftp -u username,password ftp.yourdomain.com # 进入目录 cd /path/to/remote/directory # 上传文件 put local_file.txt # 退出 exit
Windows PowerShell(使用 Copy-Item)
PowerShell 可以直接通过 FTP 协议复制文件:
# 定义变量 $ftpUri = "ftp://ftp.yourdomain.com/remote/path/file.txt" $localFile = "C:localpathfile.txt" $credentials = Get-Credential # 弹出窗口输入用户名密码 # 上传文件 Copy-Item -Path $localFile -Destination $ftpUri -Credential $credentials
使用 curl 命令(跨平台,适合脚本自动化)
# 上传文件 curl -T local_file.txt ftp://username:password@ftp.yourdomain.com/remote/path/ # 或者分步指定凭据(更安全,避免密码在历史记录中明文显示) curl -T local_file.txt --user username:password ftp://ftp.yourdomain.com/remote/path/
编程方式(适合自动化集成)
Python 使用 ftplib
from ftplib import FTP
ftp = FTP('ftp.yourdomain.com')
ftp.login(user='username', passwd='password')
# 切换到目标目录
ftp.cwd('/remote/path')
# 上传文件(以二进制模式)
with open('local_file.txt', 'rb') as file:
ftp.storbinary('STOR local_file.txt', file)
ftp.quit()
print("上传成功!")
Python 使用 paramiko(SFTP 协议,更安全)
注意:SFTP 是 SSH 文件传输协议,比传统 FTP 更安全,推荐优先使用。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('ftp.yourdomain.com', username='username', password='password')
sftp = ssh.open_sftp()
sftp.put('local_file.txt', '/remote/path/local_file.txt')
sftp.close()
ssh.close()
print("上传成功!")
重要注意事项
-
安全建议:
- 传统 FTP 是明文传输,用户名、密码和数据都会被网络嗅探,如果可能,请优先使用 SFTP(SSH File Transfer Protocol)或 FTPS(FTP over SSL/TLS)。
- 如果必须使用 FTP,请确保服务器位于内网或受信任的网络环境中。
-
被动模式 (Passive Mode):
- 如果你位于防火墙或 NAT 网络后(如公司网络、家庭宽带),连接 FTP 服务器时可能需要启用 被动模式 (PASV)。
- FileZilla 默认启用被动模式。
- 命令行中,
ftp命令输入passive可切换。
-
文件权限:
- 上传后,检查文件在服务器上的权限(如
chmod 644或755),确保 Web 服务器或应用可以读取/执行。
- 上传后,检查文件在服务器上的权限(如
-
断点续传:
- 对于大文件,建议使用支持断点续传的工具(如
lftp、FileZilla、rsync+ SSH),避免网络中断后重新上传。
- 对于大文件,建议使用支持断点续传的工具(如
-
SFTP vs FTP:
如果服务器提供 SFTP 服务(通常端口 22),强烈建议改用 SFTP,它更安全且配置更简单。
| 场景 | 推荐工具 |
|---|---|
| 偶尔上传几个文件 | FileZilla / WinSCP |
| Windows 快速操作 | 文件资源管理器地址栏输入 ftp://... |
| Linux/macOS 脚本 | curl 或 lftp |
| 自动化程序集成 | Python (ftplib 或 paramiko) |
| 安全要求高 | 使用 SFTP 而非传统 FTP |
请根据你的具体环境选择合适的方式,如有特定错误信息,可提供更多细节以便进一步帮助。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/484069.html



