just send the file in a HTTP POST (multipart encoded) from the client
Code to do it is similar to this...
@request.restful()
def uploader():
def POST(*args, **kwargs):
# if the post is correct only first item is needed
uploaded_file = kwargs[kwargs.keys()[0]]
# fake table to use readymade code for upload
db.define_table('media_content_', Field('bdata', 'upload'), migrate=False)
filename = db.media_content_.bdata.store(uploaded_file, uploaded_file.filename)
return dict(message='uploaded to file: {}'.format(filename))