【问题标题】:validate the size and format if uploaded image and resize it in django验证上传图像的大小和格式并在 django 中调整大小
【发布时间】:2016-10-18 12:40:17
【问题描述】:

我在 django 中上传一张图片,我想在 forms.py 中验证它的格式和大小

class CreateEventStepFirstForm(forms.Form):
    user_image = forms.ImageField(required = True, widget=forms.FileInput(attrs={
        'class' : 'upload-img',
        'data-empty-message':'Please upload artist image, this field is required'
    }))

在上传这张图片时,我想首先验证它的格式,表单只允许用户上传 png 和 jpeg 图像,并且用户必须上传最大 700*500 尺寸的图像,如果图像低于这个尺寸,那么这个表单不应该被验证,如果图像大于 1200*1000 像素,在这种情况下应该将图像大小调整为 700*500,而不影响图像质量。

我用于上传文件的视图是:-

def create_new_event(request, steps):
    if request.method == 'POST':
        stepFirstForm = CreateEventStepFirstForm(request.POST, request.FILES)
        if stepFirstForm.is_valid():

            myfile = request.FILES['user_image']
            fs = FileSystemStorage()
            filename = fs.save('event_artists_images/'+myfile.name, myfile)
            uploaded_file_url = fs.url(filename)

        return render(request, 'home/create-new-event.html', {'stepFirstForm':stepFirstForm})

【问题讨论】:

  • 如果获取像素大小,您已经打开了文件。过滤器为ext > file_size > pixel_size

标签: python django


【解决方案1】:

您应该考虑编写自己的自定义验证器。您可以在documentation 阅读有关它们的信息

一旦您创建了一个检查这些值的验证器,您就可以通过几种不同的方式将其附加到表单中。

【讨论】:

    猜你喜欢
    • 2011-10-24
    • 2012-01-10
    • 1970-01-01
    • 2015-08-06
    • 2017-06-26
    • 2018-05-03
    • 2014-09-11
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多