【发布时间】: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。