繁体   English   中英

Django ImageField“上传有效图片。 您上传的文件不是图像或损坏的图像。“

[英]Django ImageField “Upload a valid image. The file you uploaded was either not an image or a corrupted image.”

我安装了PIL,但每当我尝试通过Django Admin为我的模型将.png文件上传到图像字段时,我收到此错误:

“上传有效图片。您上传的文件不是图片或图片已损坏。”

其他图像类型工作正常。 我尝试了几种不同的PNG文件。

我已经尝试在安装pypng,libpng-dev等之后重建PIL。并且我在ubuntu服务器上。

这个问题通过使用pip来安装“枕头”而不是“pil”来解决,这可以轻松部署到virtualenv。

当你编译PIL时,它应该说它是否已经使用PNG支持进行编译,但是如果你自己安装它有问题,我建议你使用ubuntu附带的版本。 这是奇怪的命名,但很容易安装:

apt-get install python-imaging

我发现在Ubuntu上构建PIL会导致问题因为libpng位于非标准位置,而PIL无法找到它。

在已下载PIL的文件夹中,编辑setup.py 找到以下行:

JPEG_ROOT = None

并将其更改为

JPEG_ROOT = '/usr/lib/i386-linux-gnu/'

然后重建PIL并检查包含PNG支持的结尾附近的消息。

我知道当你想添加PNG支持时修改JPEG_ROOT很奇怪,但setup.py也会在JPEG_ROOT查找libpng

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM