ich stehe nun vor folgendem problem:
wenn ich eine jpeg-datei über multipart-formdata hochlade um sie unter anderem namen zu speichern - WIE bei behemoth stelle ich das an?
zu fuss im interaktiven input habe ich das schonmal hingekriegt:
eine datei binär zu öffnen, auszulesen und in eine andere datei binär reinzuschreiben.
lade ich sie hoch, bekomme ich auch ein fileobjekt, lasse ich es mir anzeigen, kann man mit 'n bischen glück sogar sehen, aus welcher digitalkamera es kommt bzw. durch welches bildbearbeitungsprogramm sie gelaufen ist.
die geschriebene datei ist aber nur 2-3 k gross.
dabei kommt es nicht drauf an, ob das jpg 32 kB oder 1,5 MB hat!
kann/muss/sollte ich eine sowas wie puffergrösse o.ä. angeben?
hier mal der (ausgeräumte) code, oFile enthält das file-objekt aus cgi.FieldStorage():
---------schnipp--------------------------------------------------------
Code: Alles auswählen
def handleUpload(oFile):
sStorefilename = 'dummy.jpg'
oInput = oFile.file
oTempfile = open(sStorefilename,'wb')
tempInhalt = 'foo'
while len(tempInhalt) != 0:
tempInhalt = oInput.read()
oTempfile.write(tempInhalt)
oTempfile.close()
return sStorefilename
soweit so gut. fehlermeldungen kommen nicht.
das ganze läuft mit python 2.1.3 und dem xitami-webserver.
mit ascii-dateien klappt das ganz gut.
gibt es eine art EndOfFile-flag?
stört sich das script an nullen im hochgeladenen file?
ich habe hier schon mein halbes mobiliar zusammengetreten!
verzweifelte grüsse
ponder