Hi!
Ich wollte eigentlich von einer Fotoseite einen Zipordner mit vom User ausgewählten Bildern zum Download anbieten. Das geht jetzt aber nicht, da's ein Filesizelimit gibt. Da ich den Upload der Bilder eh schon über ein Pythonprogramm mache, möchte ich da jetzt auch den Download des Ungezippten Bilderordners einbauen.
Frage: Gibt es da was "fertiges" oder muss ich mir das selbst bauen?
Ich hab ein ftplib.FTP-Objekt und ein Zielverzeichnis. Ich hab shutil gefunden, aber geht das auch mit FTP?
Gruß, jj
ftp Verzeichnis Download
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Inzwischen bin ich soweit, das erstmal ein paar Dateien heruntergeladen werden, bevor dann wieder die Fehlermeldung kommt. Das Problem ist jetzt aber, das die Bilder zwar da sind, ich sie aber nicht betrachten kann.
IrfanView sagt bei zweien, das es ein unbekanntes Bildformat sei, und bei einem Bild "JPGDekodierungsfehler! Quantization table 0x01 was not defined".
Kanns an dem Code liegen?
LG
IrfanView sagt bei zweien, das es ein unbekanntes Bildformat sei, und bei einem Bild "JPGDekodierungsfehler! Quantization table 0x01 was not defined".
Kanns an dem Code liegen?
Code: Alles auswählen
cmd = "RETR "+name
f = file(dst, "wb")
self.retrlines(cmd, lambda line: f.write(line))
f.close
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo schlangenbeschwörer!schlangenbeschwörer hat geschrieben:unbekanntes Bildformat
Du musst ``retrbinary`` verwenden.
Hier ein etwas erweitertes Beispiel: http://www.python-forum.de/post-56361.html#56361
Ansonsten würde ich hier im Forum einfach mal nach "*retrbinary*" (ohne Anführungszeichen) suchen.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Ja, habs grad gelöst.
Wobei da ein Fehler nach dem anderen kam...
Hier meine Klasse:
Gruß, jj
Wobei da ein Fehler nach dem anderen kam...
Hier meine Klasse:
Code: Alles auswählen
# import ist zu verschönern...
from os.path import basename, splitext, isfile, isdir, islink, join, normcase, split
from os import makedirs
class myFTP(ftplib.FTP):
def copy(self, src, dst):
path, name = split(src)
self.cwd(path)
cmd = "RETR "+name
f = file(dst, "wb")
self.retrbinary(cmd, lambda line: f.write(line))
f.close
self.cwd("/.")
def copytree(self, src, dst):
names = self.nlst(src)
# del "/." und "/.."
del names[0:2]
try:
makedirs(dst, 020)
except OSError:
"Warning: Verzeichnis existiert bereits: "+dst
chmod(dst, 020)
for name in names:
srcname = join(src, basename(name))
dstname = join(dst, basename(name))
try:
if isdir(srcname):
self.copytree(srcname, dstname)
else:
self.copy(srcname, dstname)
except (IOError, OSError), why:
print "Can't copy %s to %s: %s" % (`srcname`, `dstname`, str(why))