使用python的ftplib时,将小文本文件上传到ftp站点时收到以下错误:
File "ftpuploader.py", line 13, in uploadFilePath
ftp.storbinary("STOR {}".format(filepath), file)
File "/usr/lib64/python2.7/ftplib.py", line 471, in storbinary
conn = self.transfercmd(cmd, rest)
File "/usr/lib64/python2.7/ftplib.py", line 376, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib64/python2.7/ftplib.py", line 358, in ntransfercmd
resp = self.sendcmd(cmd)
File "/usr/lib64/python2.7/ftplib.py", line 249, in sendcmd
return self.getresp()
File "/usr/lib64/python2.7/ftplib.py", line 224, in getresp
raise error_perm, resp
ftplib.error_perm: 553 Could not create file.
连接到另一个系统时,我成功使用以下代码。我可以登录,更改目录,但无法创建文件。我可以使用filezilla或简单的curl命令加载文件,curl -T'/ path / to / file'this Stack Overflow post --user admin:password
ftp = FTP(address)
ftp.login(username, password)
ftp.cwd('/gui')
file = open(filepath, 'rb')
ftp.storbinary("STOR {}".format(filepath), file)
ftp.retrlines('LIST') # list directory contents
file.close()
ftp.quit()
任何想法?
答案 0 :(得分:2)
您正在将路径传递到STOR
命令的本地路径(与open(filepath, 'rb')
使用的路径相同)。
使用CURL时,您不指定远程文件的任何路径。因此文件会上传到当前的FTP工作目录。
如@ acw1668的评论中所述,请使用:
ftp.storbinary("STOR {}".format(os.path.basename(filepath)), file)