ich starte gerade mit der Python-CGI programmierung und habe schon die ein oder andere 500er Seite gesehen...
Bisher habe ich die Websachen in PHP gestrickt, was hier aber aus verschiedenen Gründen nicht geht.
Ich probiere mich gerade an einen File-Upload-Script für mehrere Dateien.
Für PHP kann man Daten als Array übergeben, wenn name="meinname[]" ist . Dafür braucht man dem Wert name nicht unterschiedliche Werte zuweisen (fix oder dynamisch).
Frage:
kann ich auf die einzelnen file-inputs "eleganter" zugreifen als ich das probiere...
Kann mir jemand eine gute Doku zu Python-CGI geben? Was im "18.2 cgi -- Common Gateway Interface support." steht ist recht dürftig finde ich.
Das Form:
Code: Alles auswählen
<form id="uploadForm" name="uploadForm" method="post" action="/cgitest.py" enctype="multipart/form-data">
<p class="Stil1">Upload-Test für Files</p>
<p class="Stil1">=>Python </p>
<p>
<input id="file" class="fileupload" size="30" type="file" name="file" />
</p>
<p>
<input id="file" class="fileupload" size="30" type="file" name="file" />
</p>
<p>
<input id="file" class="fileupload" size="30" type="file" name="file" />
</p>
<p>
<input type="submit" name="Submit" value="Senden" />
</p>
</form>
Code: Alles auswählen
#!/usr/bin/python
import os, sys
import cgi
import cgitb
cgitb.enable()
def cgiFieldStorageToDict( fieldStorage ):
"""Get a plain dictionary, rather than the '.value' system used by the cgi module."""
params = {}
for key in fieldStorage.keys():
if isinstance(fieldStorage[ key ], list):
for i in range (len(fieldStorage[ key ])):
params[ i ] = fieldStorage[ key ][i]
# typ, name, wert...
else:
params[ key ] = fieldStorage[ key ].value
return params
if __name__ == "__main__":
dict = cgiFieldStorageToDict( cgi.FieldStorage() )
print "Content-Type: text/plain"
print
print dict