Django ImageField“上传有效图像。您上传的文件要么不是图像,要么是损坏的图像。”

发布于 2024-12-07 08:28:25 字数 202 浏览 1 评论 0原文

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

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

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

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

I have PIL installed, however whenever I try to upload a .png file to an image field through the Django Admin for my model, I get this error:

"Upload a valid image. The file you uploaded was either not an image or a corrupted image."

Other image types work fine. I have tried several different PNG files.

I have tried rebuilding PIL after installing pypng, libpng-dev, etc.. and am on ubuntu server.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幸福丶如此 2024-12-14 08:28:25

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

This issue was solved by using pip to install "pillow" instead of "pil" which allows easy deployment to virtualenv.

じее 2024-12-14 08:28:25

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

apt-get install python-imaging

When you compile PIL it should say if it has been compiled with PNG support or not, but if you have problems installing it yourself, I would recommend that you use the version that comes with ubuntu. It's strangely named but easily installed with:

apt-get install python-imaging
阿楠 2024-12-14 08:28:25

我发现在 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< /代码>也是如此。

I have found that building PIL on Ubuntu can cause problems because libpng is in a non standard location, and PIL can't find it.

In the folder that PIL has been downloaded to, edit setup.py. Find the following line:

JPEG_ROOT = None

and change it to

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

then rebuild PIL and check for the messages near the end that PNG support is included.

I know it's odd to modify JPEG_ROOT when you want to add PNG support, but setup.py will look in JPEG_ROOT for libpng too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文