如何在django中获取上传图片的宽度和高度?
不要使用 PIL。
最佳答案
ImageField 会自动处理图像的宽度和高度。您不需要做任何事情。
- 更改项目设置
将这些代码附加到项目目录中的setting.py末尾
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
然后修改项目目录下的urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path(...),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- 提供两个整数字段来存储图像的宽度和高度
模型.py
class Picture(models.Model):
image = models.ImageField(upload_to='images/', width_field = 'image_width', height_field='image_height')
image_width = models.IntegerField(default=0)
image_height = models.IntegerField(default=0)
- 创建一个表单,请勿包含“image_width”和“image_height”,它们应该被隐藏并自动填充。
表单.py
class PictureForm(forms.Form)
image = forms.ImageField()
- 在 View 中验证和处理表单并将数据保存到数据库
View .py
def createPicture(request):
form = PictureForm(request.POST, request.FILES)
if form.is_valid():
picture = Picture()
picture.image = form.cleaned_data['image']
picture.save()
return HttpResponseRedirect(reverse('picture-list'))
else:
form = PictureForm()
return render(request, 'template_file', {'form' : form})
关于django - django中如何获取上传图片的宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17779016/