部分FTP上传与storbinary

时间:2010-12-28 20:09:50

标签: python ftp

我正在通过ftp向服务器发送一个xml文件,但它在53KB中被切断为48KB。

代码是:

if __name__ == '__main__':

    ftp = ftplib.FTP("IP")
    ftp.login(user = 'NAME', passwd = 'PASS')
    ftp.cwd('/web/content/tree/_demo') 
    a.write('<root>\n' + DirXML(dirname) + '\n</root>')
    f=open(outputname,'rb')
    ftp.storbinary('STOR '+os.path.basename(outputname),f)
    f.close()
    ftp.quit()

与此相同的问题:Partial Upload With storbinary in python 但当然,这并没有提供答案。该文件通过ftp客户端发送,通过python解释器发送,但不通过脚本发送。

编辑:它不会抛出任何异常,完成正常但是当我查看上传的文件时,它会在最后被切断。如果我删除ftp部分并将文件导出到我的本地计算机,它会很好。缩进只是我在格式化方面做得不好。

1 个答案:

答案 0 :(得分:0)

您使用storlines代替storbinary

前者将进行行结束翻译。

storbinary ftplib代码在传输之前执行TYPE I,以确保传输模式设置为Image。 (二进制)。

同时检查以确保在传输开始之前已刷新或关闭要传输的文件。通过write调用写入的数据可能无法在ftp库打开文件时刷新到磁盘。