<form action="${h.url.current()}" method="POST" enctype="multipart/form-data">
<input type="file" name="your_file" />
</form>
class MyValidator(formencode.Schema):
allow_extra_fields = True
filter_extra_fields = True
name = formencode.validators.String(not_empty=True, messages={'empty': 'Please enter your name'})
your_file = formencode.validators.FieldStorageUploadConverter(not_empty=True, messages={'empty': 'You haven\'t selected any files'})
try:
form_result = MyValidator().to_python(dict(request.params))
except formencode.Invalid as error:
return 'failed'
else:
print type(form_result['your_file'])
それが私のコードです。form_result['your_file']
Unicodeオブジェクトです。このため、ファイルを読み取ったり、「ファイル」関連のタスクを実行したりすることはできません。私がそれにアクセスするために見つけた唯一の方法は、検証を実行した後にformencodeを破棄し、に戻すことrequest.POST['your_file']
です。
私は何が間違っているのですか?