代码如下,这里有一个关键参数,即“f.set_pasv(False)”,由于Python ftplib里面默认是开启pasv的,所以如果你不手动去关闭pasv,就会导致你可以登录,可以创建目录,但是无法上传文件或图片;当你上传文件时会报超时,只到以失败而退出。
#!/bin/env python
#coding: utf-8
from ftplib import FTP
ftp_args = {
'host' : '192.168.1.218',
'user' : 'vuser',
'paswd' : 'vuserl123'
}
def conect_to_ftp():
f = FTP()
f.set_pasv(False) #默认是True,手动关闭被动模式
f.connect(ftp_args['host'])
f.login(ftp_args['user'],ftp_args['paswd'])
print('Welcom: ',f.getwelcome())
return f
def upload_pic_to_ftp():
f = conect_to_ftp()
remote_pic ='/home/vuser/images/title_1.png'
local_pic = 'title_1.png'
f.cwd('images')
with open(local_pic,'rb') as fp:
try:
f.storbinary("STOR %s" % remote_pic, fp)
f.set_debuglevel(0)
except Exception as e:
print('Exception is: ',e)
f.quit()
upload_pic_to_ftp()