def fileupload(request): sesskey = request.matchdict.get('sesskey') user_id, node_id = tokenize_sesskey(sesskey) if user_id != request.user.id: raise RuntimeError('Invalid session key!') filestorage = request.POST.get('files[]') filename = os.path.basename(filestorage.filename) tmp_dir = request.registry.settings['cmsfix.tmpdir'] dest_path = tmp_dir + '%s.payload' % sesskey size, total = save_file(dest_path, filestorage, request) if size == total: dbh = get_dbhandler() file_mimetype = mimetypes.guess_type(filename) try: if not file_mimetype[0]: mimetype_id = dbh.EK._id('application/unknown') else: mimetype_id = dbh.EK._id( file_mimetype[0]) except KeyError: mimetype_id = dbh.EK._id( 'application/unknown' ) return { 'basename': filename, 'size': size, 'mimetype_id': mimetype_id } return {}