2

我正在使用 NGINX/FastCGI 在 Ubuntu 上的 virtualenv 中运行 Django 应用程序,并尝试将 JPG 图像上传到 Django 管理应用程序。

我收到此错误:“上传有效图像。您上传的文件不是图像或损坏的图像。” 我可以上传 GIF 图像,所以只有 JPEG 会导致问题。

这是我到目前为止所尝试的:

1)在PIL之前安装libjpeg62-dev

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pil

在 PIL 安装结束时,我看到:

PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
              [GCC 4.4.3]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available

所以看起来JPEG支持在那里。我还进行了手动测试以验证并验证:

>>> from PIL import Image
>>> trial_image=Image.open("/path/to/my/image.png")
>>> trial_image.verify()

2) 类似于上面的方法#1,但手动指定 JPG_ROOT:

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install --no-install pil
vi /path/to/virtualenv/build/PIL/setup.py (JPG_ROOT = libinclude("/usr/lib"))
pip install pil

3)用枕头(PIL叉子)试试我的运气

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pillow    

我在每次安装 PIL 后都尝试停止和启动 nginx 服务下运行 Django。

到目前为止,上述方法都没有让我在 Ubuntu 上的 Django 应用程序中克服上述错误消息。我可以在运行相同 Django 应用程序的本地开发盒(Mac OSX 10.6.5)上上传相同的 JPG 图像,所以我知道这与我在 Ubuntu 上的部署有关。

任何帮助,将不胜感激!

4

2 回答 2

1

好吧,你知道吗,我决定退出 Django 管理员并重新登录......突然它工作正常了!嘘。我尝试的最后一件事是上面的方法#2,所以如果有人遇到这个问题,那是你最好的解决方案。

于 2012-02-14T20:44:28.043 回答
0

你很亲密。但是所需的库是不同的。

帮助我的答案在这里https://stackoverflow.com/a/23445746/1478569

于 2014-08-12T15:21:02.030 回答