<% 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() %>