获得;“不允许操作”;或;不是常规文件;使用Python ftplib上载文件时

获得;“不允许操作”;或;不是常规文件;使用Python ftplib上载文件时,python,ftp,ftplib,Python,Ftp,Ftplib,我想用Python上传一个文件到一个租用的FTP服务器(coreserver)。代码是这样的 # -*- coding: utf-8 -*- import ftplib def ftp_upload(hostname, username, password, upload_src_path, upload_dst_path): ftp = ftplib.FTP(hostname) ftp.set_pasv("true") ftp.login(user

我想用Python上传一个文件到一个租用的FTP服务器(coreserver)。代码是这样的

# -*- coding: utf-8 -*-
import ftplib

def ftp_upload(hostname, username, password, upload_src_path, upload_dst_path):
    ftp = ftplib.FTP(hostname)
    ftp.set_pasv("true")
    ftp.login(username, password)
    fp = open(upload_src_path, 'rb')
    ftp.storbinary(upload_dst_path ,fp)

    ftp.close()
    fp.close()

hostname = "example.com"
upload_src_path = "/content/drive/My Drive/DSC_0569.JPG"
upload_dst_path = "STOR /public_html/example.com/"
username = "example"
password = "example"

ftp_upload(hostname, username, password, upload_src_path, upload_dst_path)
但是错误是这样发生的

# -*- coding: utf-8 -*-
import ftplib

def ftp_upload(hostname, username, password, upload_src_path, upload_dst_path):
    ftp = ftplib.FTP(hostname)
    ftp.set_pasv("true")
    ftp.login(username, password)
    fp = open(upload_src_path, 'rb')
    ftp.storbinary(upload_dst_path ,fp)

    ftp.close()
    fp.close()

hostname = "example.com"
upload_src_path = "/content/drive/My Drive/DSC_0569.JPG"
upload_dst_path = "STOR /public_html/example.com/"
username = "example"
password = "example"

ftp_upload(hostname, username, password, upload_src_path, upload_dst_path)
error\u perm:550/public\u html/example.com/:不允许操作
我试过了

STOR/public\u html/
STOR/public\u html
STOR/public_html/example.com/
STOR/public_html/example.com
STOR/example.com/
STOR/example.com
但是错误总是发生

error\u perm:550/public\u html/example.com/:不允许操作

error\u perm:550/public\u html/example.com/:不是常规文件
有人能帮我解决这个问题吗?

参数中的路径是目标文件的路径,而不仅仅是目标文件夹的路径。否则ftplib如何知道您正在上载的文件名

因此,它应该是:

upload_dst_path = "STOR /public_html/xxxxxxx.com/DSC_0569.JPG"

原来C#不支持CWD命令非常感谢Martin先生,我试过你的评论,现在错误是error_perm:550/public_html/xxxxxxx.com/DSC_0569.JPG:Operation not allowed OMG…
日语Q和一个网站管理员建议添加一行,我尝试添加

ftp.prot\p()#在ftp.login(用户名、密码)行之后切换到安全数据连接

然后错误消息更改为


AttributeError:“FTP”对象没有属性“prot_p”

,但我是初学者,谷歌搜索过,但找不到解决方法……

你能告诉我我接近解决方法吗?
你能使用命令行/GUI FTP客户端将该文件上载到该文件夹吗?谢谢谢谢你的回复!是的,我通过Filezilla FTP客户端成功上传了这是通过Filezilla成功上传的实际站点和实际照片。请发布详细的Filezilla日志文件。问题既不是关于C#也不是关于CWD。