Otro truquito para web2py
A veces, uno quiere generar un archivo en el sever ejecutando un comando, stremearlo al cliente y borrarlo. Acá les muestro un pequeño hack que hice para hacer eso. Asumiendo que el archivo que generó se llama fname, hay que poner esto al final del método de su controller:
class StreamAndCleanUp(object):
def __init__(self):
stream = file(fname, "rb")
self.stream = stream
self.name = self.stream.name
self.read = stream.read
def close(self):
self.stream.close()
os.remove(fname)
# You can also put here other actions you need to make after streaming the file
return response.stream(StreamAndCleanUp())
Happy hacking,
Aureliano.