2012-02-14 83 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,所以如果有人有這個問題,那是你最好的解決方案。