2010-12-28 16 views
0

Ich sende eine XML-Datei über FTP zum Server, aber es schneidet 48KB von 53KB ab.Partielle FTP-Upload mit storbinary

Der Code ist:

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() 

Das gleiche Problem wie folgt aus: Partial Upload With storbinary in python Aber das ist natürlich keine Antwort liefern. Die Datei sendet über FTP-Client, sendet über Python-Interpreter aber nicht über das Skript.

edit: Es gibt keine Ausnahmen, vollendet, aber wenn ich mir die hochgeladene Datei anschaue, wird sie am Ende abgeschnitten. Wenn ich den FTP-Teil entferne und die Datei auf meinen lokalen Computer exportieren lasse, kommt es gut an. Die Einrückungen waren nur ich schlecht im Formatieren.

+0

haben Sie versucht, manuell Datei auf den Server zu übertragen, um sicherzustellen, dass es Python ist schuld? – SilentGhost

+0

Ja, definitiv etwas in meinem Code. – PFlans

+0

also, ist es "storbinary" oder "storlines"? auch, was ist 'a' und wie hängt es mit deinem Code zusammen?' – SilentGhost

Antwort

0

Sie verwenden storlines anstelle von storbinary.

Die erstere wird Line-End-Übersetzung tun.

Der storbinary ftplib-Code führt vor der Übertragung einen TYPE I aus, um sicherzustellen, dass der Übertragungsmodus auf Image festgelegt ist. (Binär).

Überprüfen Sie außerdem, ob die Datei, die Sie übertragen, vor Beginn der Übertragung geleert oder geschlossen wurde. Die Daten, die über den Aufruf write geschrieben werden, werden möglicherweise nicht an der Stelle auf den Datenträger geschrieben, an der die FTP-Bibliothek die Datei öffnet.