<%
import pickle
# bufferointi
def fbuffer(f, chunk_size=10000):
while True:
chunk = f.read(chunk_size)
if not chunk: break
yield chunk
if form.has_key('file') and form['file'].filename:
fileitem = form['file']
tiedosto = os.path.basename(fileitem.filename)
# polku upload-kansioon
polku = os.path.join(os.path.dirname(req.filename), 'upload')
# polku tiedostoon
upload = os.path.join(polku, tiedosto)
f = open(upload, 'wb', 10000)
# Luetaan tiedosto paloittain
for chunk in fbuffer(fileitem.file):
f.write(chunk)
f.close()
req.write( 'Tiedoston %s siirtäminen onnistui
' % tiedosto)
f = open(upload, 'r')
foo = f.read()
f.close()
req.write("%s
" % foo)
f = open(upload, 'r')
w = open(os.path.join(polku, "testi.txt"), 'w')
for rivi in f:
req.write("%s
" % rivi)
w.write(rivi) #kirjoittaa vain stringejä
pickle.dump(upload, w)
import fcntl
fcntl.flock(w.fileno(), fcntl.LOCK_EX)
w.close()
%>