Here is a starting point that describes the process (and the problem): http://cherrypy.readthedocs.org/en/latest/progguide/files/uploading.html