Dateigröße auslesen

Code-Stücke können hier veröffentlicht werden.
Pit

Dateigröße auslesen

Beitragvon Pit » Freitag 8. Juli 2005, 07:27

Hallo,

ich möchte vor dem Übertragen einer Datei deren Größe ermitteln und dann, wenn die Größe überschritten ist, die Übertragung nicht zulassen. Ich habe schon folgende Code eingefügt:

Code: Alles auswählen

if os.path.getsize(tempdir + up_file)>10485760L:
   response.write("Die Datei ist groeßer als 10 MB.")
raise spyceDone

Unter Windows 2000 funktioniert das einwandfrei, jedoch unter Windows 2003 Server erhalte ich eine Fehlermeldung:

Code: Alles auswählen

Spyce exception
File: c:\\Programme\\ServPDF\\htdocs\\serverapp.spy
Message: OSError: [Errno 2] No such file or directory: \'c:\\\\Programme\\\\ServPDF\\\\spyce\\\\temp\\\\Exchange_Server_2003.doc\'


Stack: serverapp.spy:66, in (main):
if os.path.getsize(tempdir + up_file)>10485760L:

c:\\Programme\\ServPDF\\python24\\lib\\ntpath.py:229, in getsize:
return os.stat(filename).st_size


Wo kann der Fehler liegen bzw. gibt es Code-Alternativen?

Schönes Wochenende

Pit
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 8. Juli 2005, 07:39

Das sieht aber so aus, das es kein Fehler mit der Größenbestimmung an sich gibt, sondern das der Pfad "tempdir + up_file" einfach nicht existiert!
Benutz doch besser os.path.join( tempdir, up_file )
Lass dir den Pfad doch mal richtig ausgeben und schau nach ob er stimmt.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Pit

Beitragvon Pit » Freitag 8. Juli 2005, 07:59

Hallo Jens,

vielen Dank für deine Hilfe! Der Pfad existiert, es ist auch alles identisch mit der Windows 2000 installation.

Ich habe den Code jetzt folgendermassen angepasst:

if os.path.join( tempdir, up_file )>10485760L:
response.write("Die Datei ist groeßer als 10 MB.")
raise spyceDone


Unter Win 2000 funktioniert das alles wieder perfekt. Unter Win 2003 kommt
jetzt seltsamerweise bei jeder Datei die Meldung "Die Datei ist größer als 10 MB", auch wenn die Datei nur 5 Kilobyte hat.

Weisst du eine Lösung?

Grüße

Pit
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 8. Juli 2005, 08:01

:lol:

Du vergleichst ja nicht mehr die größe :D

So sollte es gehn:

Code: Alles auswählen

if os.path.getsize( os.path.join( tempdir, up_file ) )>10485760L:

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Pit

Beitragvon Pit » Freitag 8. Juli 2005, 08:18

Achso :oops:

Aber jetzt :shock: macht der garnix mehr. Selbst unter Win2000 wird nur noch ne leere Seite angezeigt, egal wie groß die Datei ist.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 8. Juli 2005, 08:22

Also da stimmt doch was nicht. Da muß man wohl ein bischen genauer gucken:

Code: Alles auswählen

file_name = os.path.join( tempdir, up_file )
print "Filename:", file_name

print "isfile:", os.path.isfile( file_name )

file_size = os.path.getsize( file_name )
print "Filesize:", file_size

if file_size>10485760L:
    response.write("Die Datei ist groeßer als 10 MB.")
raise spyceDone


vielleicht auch statt print response.write() nehmen?!?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Pit

Beitragvon Pit » Freitag 8. Juli 2005, 08:40

Ähhh...jetzt mault er in Zeile 75:

Invalid Syntax

try:

Vorher hat er bei der Zeile nie gemeckert. Könnte ich dir die Datei mal mailen?
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 8. Juli 2005, 09:18

Wenn sie nicht all zu lang ist, dann poste sie ins Forum, ansonsten schick mit eine PM

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 8. Juli 2005, 12:29

Ich tippe auf einen Einrückungsfehler.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder