Ostatnio bawiłem się w generowanie stron za pomocą pythona moim celem był mały uploader
Jedno z jego opcji było przesyłanie kilku plików za pomocą tagu input i wprowadzonego w html 5 multiple=”multiple”
kod index.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "Content-type:text/html\r\n\r\n"
print """
"""
kod upload.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cgi, os
import cgitb; cgitb.enable()
form = cgi.FieldStorage()
fileitem = form['filename']
print """\
Content-Type: text/html\n
""";
message = ''
if isinstance(fileitem, list):
if len(fileitem) > 3:
message += "Za dużo plików (maksymalnie 3)"
else:
iGood = 0;
iBad = 0;
for item in fileitem:
if item.filename:
fn = os.path.basename(item.filename)
#open('/home/darkgl/www/skrypty/tmp/' + fn, 'wb').write(item.file.read())
iGood+=1;
else:
iBad+=1;
message += '%d files upload correctly\n %d files upload incorrectly' % (iGood,iBad)
else:
if fileitem.filename:
# strip leading path from file name to avoid
# directory traversal attacks
fn = os.path.basename(fileitem.filename)
#open('/home/darkgl/www/skrypty/tmp/' + fn, 'wb').write(fileitem.file.read())
message += 'The file "' + fn + '" was uploaded successfully %s' % (fileitem)
else:
message += 'No file upload'
print """
%s
""" % (message)
funkcje zapisu za komentowałem
open('/home/darkgl/www/skrypty/tmp/' + fn, 'wb').write(fileitem.file.read())
jeśli przesyłamy kilka plików to dostajemy listę
if isinstance(fileitem, list):
jeśli jeden to mamy już tylko 1 obiekt
ustawiłem że maksymalnie można wrzucić 3 pliki
if len(fileitem) > 3: