req_data = FieldStorage(req, True, file_callback=Storage) ## про file_callback напишу ниже
args = {}
for field in req_data.list:
args[field.name] = field.value
В документации пишут, что если пришёл файл, то можно использовать file_callback=Storage, где Storage - это класс, который будет управлять созданием файла. Немного изменил код из примера:
class Storage(file):
def __init__(self, advisory_filename):
self.advisory_filename = advisory_filename
self.delete_on_close = False ## чтобы файл не создавался
self.already_deleted = False
self.real_filename = '/tmp/www/dev_python/' + advisory_filename ## тут указывают директорию, куда класть файл
file.__init__(self, self.real_filename, 'w+b')
def close(self):
if self.already_deleted:
raise Exception()
super(Storage, self).close()
if self.delete_on_close:
self.already_deleted = True
os.remove(self.real_filename)