Exemplo n.º 1
0
class Main(Component):

	def __init__( self ):
		Component.__init__(self)
		self.uploader = Uploader()

	@on(GET="")
	@on(GET="{path:any}")
	def get(self, request, path=None):
		if not path: path = "index.html"
		return request.respond(self.app().load(path))

	@on(POST="upload")
	def upload( self, request ):
		upload_id    = request.param("id")
		block_size   = request.param("blocksize") or (64 * 1024)
		upload       = self.uploader.upload(request, upload_id, block_size)
		upload.onCompleted(self.onUploadComplete)
		return request.respond((
			"%s bytes read (%f%%)<br>" % (_.lastBytesRead, _.progress) for _ in upload
		))

	@expose(GET="upload/progress?{params}")
	def uploadProgress(self, params):
		return self.uploader.get(params["id"])

	def onUploadComplete( self, upload ):
		for name in upload.request.files():
			file = upload.request.file(name)
			name = "uploaded-" + file.name
			print ("Saving uploaded file to: {0}".format(name))
			with open(name, "wb") as f:
				f.write(file.data)
Exemplo n.º 2
0
	def __init__( self ):
		Component.__init__(self)
		self.uploader = Uploader()