Gok*_* NC 4

我们需要添加一个自定义验证器,如下所示:

from wtforms.validators import ValidationError

def FileSizeLimit(max_size_in_mb):
    max_bytes = max_size_in_mb*1024*1024
    def file_length_check(form, field):
        if len(field.data.read()) > max_bytes:
            raise ValidationError(f"File size must be less than {max_size_in_mb}MB")
        field.data.seek(0)
    return file_length_check
Run Code Online (Sandbox Code Playgroud)

然后将验证器传递给文件上传器字段,如下所示:

uploaded_file = FileField('Upload your file', [FileRequired(), FileSizeLimit(max_size_in_mb=2)])
Run Code Online (Sandbox Code Playgroud)

学分:

感谢@yomajo 指出如何在测量文件大小后重置文件流指针。