我在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上部署的東西。
任何幫助,將不勝感激!