【发布时间】:2018-12-15 01:22:48
【问题描述】:
错误:“上传有效图片。您上传的文件不是图片或损坏的图片。”
我一直在四处寻找,但无法找到解决问题的方法。我在 venv 本地使用相同的图像并且它们可以工作。我在具有相同 Pillow 库和依赖项的 docker 容器中使用相同的图像并且它可以工作。
我有一个 Django ImageField,我有一个简单的管理表单。
我可以将图像上传到 S3 进行存储。我已经拉出了我们在服务器上使用的 docker 容器,并且我已经在本地运行了它,但是无法得到错误。我在上传图片之前没有遇到过这个错误,所以我不确定为什么会这样。
# models.py
@deconstructible
class RandomFileName(object):
def __init__(self, path):
self.path = path
def __call__(self, instance, filename):
ext = filename.split('.')[-1]
filename = '{}.{}'.format(uuid.uuid4().hex, ext)
return os.path.join(self.path, filename)
class MyModel(models.Model):
name = models.CharField(max_length=50)
avatar = models.ImageField(
upload_to=RandomFileName('avatars')
)
...
# admin.py
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
list_display = (
'name',
...
)
fieldsets = (
(None, {'fields': (
'name',
'avatar',
)}),
)
...
依赖关系:
Django==2.0.3
枕头==5.3.0
编辑:
这在 AWS API Gateway 后面,如果有人自己遇到此问题,我的答案/解决方案如下。
【问题讨论】:
标签: django amazon-web-services django-admin aws-api-gateway