Funktion, die Dateigröße ausliest

Django, Flask, Bottle, WSGI, CGI…
Antworten
cort1983
User
Beiträge: 3
Registriert: Mittwoch 5. April 2006, 08:27
Wohnort: Dresden
Kontaktdaten:

Hallo,

ich habe für unsere Plone-Seite ein Produkt programmiert, mit dessen Hilfe die Nutzer Jobangebote in unserer Firma auf die Website stellen können.
Das ganze läuft wie folgt:
Es gibt ein Eingabeformular mit "Einstiegsdatum", "Vergütung" etc. Der Nutzer hat weiterhin die Möglichkeit, eine Datei hochzuladen, z.B. ein PDF mit genaueren Angaben zum jeweiligen Job-Angebot.
Im Ausgabeformular habe ich mit "tal:condition" versucht festzulegen, dass der Link zu der Datei nur dann ausgegeben wird, wenn der Nutzer sie auch wirklich hochgeladen hat. Es ist jedoch egal ob man eine Datei hochlädt, der Link zu der Datei wird IMMER ausgegeben.
Nun versuche ich eine Funktion zu programmieren, die mittels getSize die Größe der Datei ermittelt. Bei >0 soll der Link angezeigt werden, bei =0 nicht.
Der Codeschnipsel sieht wie folgt aus. Mir ist bewusst, dass das so nicht klappen kann, aber mir gehen die Ideen aus, denn ich bin eigentlich kein Programmierer!

Code: Alles auswählen

<tr>
        <td>
        <tal:tal tal:define="datei here/upload;"></tal:tal>
        <span tal:python import os />
        <span tal:python from os.path import getsize />        
        <span tal:define="groesse python:getSize(here/upload)"/>        
        <tal:tal tal:condition="here/groesse > 0"></tal:tal>        
        <a href="" tal:attributes = "href
        string:${here/absolute_url}/upload">
        Download 
        </a>
        </td>        
</tr>
Ich freue mich auf jede Antwort, sollte es noch Fragen geben, stellt sie bitte!

Viele Grüße,
Christoph
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

getsize ist der falsche Ansatz! Du solltest eigentlich direkt mit einer Bedingung prüfen können, ob das Dateifeld belegt ist.

Frag mich nicht, wie genau, das frag lieber in #zope oder #plone in freenode-irc ;)

Auf jeden Fall musst du kein Python dafür schreiben!
Antworten