页面

2012年5月8日星期二

Django ImageField 上传 jpeg 出错处理

使用 ImageField 之后,上传图片报错

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

查看文档,检查PIL已经装好,MEDIA_ROOT 也设置了,似乎没有什么遗留了。直接Google出错信息,发现是PIL需要JPEG的支持。

Ubuntu 下安装操作如下:
先要反安装 PIL
  • sudo pip uninstall PIL
  • sudo apt-get install libjpeg8.dev
安装回 PIL
  • sudo pip install PIL
一般就能解决问题了。但是由于使用了Virtualenv,需要在安装PIL的时候指出lib的路径,具体操作如下:
  • pip uninstall PIL
  • sudo apt-get install libjpeg8.dev
  • virtualenv ~/Dev/python-virtualenv/project-name
  • workon project-name
  • (project-name) cd ~/Dev/python-virtualenv/project-name/
  • (project-name) ln -s /usr/lib/x86_64-linux-gnu/libz.so ./lib/
  • (project-name) ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so ./lib/
  • (project-name) ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so ./lib/
  • pip install PIL
注意:i386路径为 /usr/lib/i386-linux-gnu/
参考链接:

没有评论:

发表评论