本着一个原则: 项目上需要用的,就是需要我们知道的。
按照以下的步骤点击
- windows server 服务管理器
- 右上角(工具)
- Internet Information Service(IIS)管理器
- 网站 → 添加 FTP 站点
- IP 地址:默认 全部未分配 用*表示全配置;端口:22(或自定义如 21001)。
- SSL:若无证书选 无 SSL;需加密则选 允许 SSL 并绑定证书。
- 身份验证:勾选 基本(需用户名密码)。
- 授权:选择 指定用户(输入 ftpuser)→ 权限勾选 读取 和 写入
除此之外不要忘记防火墙放行22端口。
我们想用Python读取FTP中的文件:
from ftplib import FTP
import os
"""
获取FTP服务器上的文件
"""
# FTP服务器信息
ftp_server = "192.168.1.7"
port = 22
username = "admin"
password = "123456"
# 目标文件路径
remote_file_path = "/2025-05-30/0530164949798F189341837674.pdf"
local_file_path = "0530164949798F189341837674.pdf" # 保存到本地的文件名
# 连接FTP服务器
ftp = FTP()
try:
# 连接到服务器
ftp.connect(ftp_server, port)
# 登录
ftp.login(username, password)
print("成功连接到FTP服务器")
# 列出根目录下的所有文件和文件夹
# print("根目录内容:")
# ftp.dir()
possible_paths = [
"/"
]
for path in possible_paths:
try:
print(f"\n尝试访问目录: {path}")
ftp.cwd(path)
print("目录内容:")
ftp.dir()
except Exception as e:
print(f"无法访问 {path}: {e}")
# 下载文件
with open(local_file_path, 'wb') as local_file:
ftp.retrbinary(f'RETR {remote_file_path}', local_file.write)
print(f"文件已成功下载到: {local_file_path}")
except Exception as e:
print(f"发生错误: {e}")
finally:
# 关闭连接
try:
ftp.quit()
except:
pass
最后,如果项目经理让你读取文件二进制并写入数据库,这样的需求,最好不要贸然行动,因为数据库存储的二进制文件可能存在加密的情况。