2012-02-14 89 views
2

我在Ubuntu上使用NGINX/FastCGI在一个virtualenv中运行Django应用程序,并尝试将JPG图像上传到Django管理应用程序。通过Django上传JPEG图像显示错误

我得到这个错误:“上传一个有效的图像,你上传的文件不是图像或是图像损坏。”我可以上传一张GIF图片,因此只有JPEG会导致问题。

这里是我试过到目前为止:

1)PIL

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

之前安装中的libjpeg62-dev的在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  

我跑的Django下我也想停止&开始每次安装PIL后nginx的服务。

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

任何帮助,将不胜感激!

回答

1

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