網上搜過幾個版本,一是亂寫,二是複雜。容易出錯有兩個地方:
一是不知道怎麼從request中讀取圖片檔案,request.FILES['file'](file是你上傳輸入框的名稱)就是一個檔案,有興趣可以查看/usr/lib/python2.5/site-packages/django/core/files/uploadedfile.py,就可以知道了。直接操可以了。有些人存本地,再開啟,或者又匯入StringIO中,屬於多此一舉。
二是不知道怎麼形成縮圖。其實超級簡單,PIL的文檔Image模組第二個例子就是講產生縮圖的。image.thumbnail就可以了。參考:
http://www.pythonware.com/library/pil/handbook/image.htm
upload.html
<div id="uploader"><br /><form id="upload" enctype="multipart/form-data" action="/ajax/upload/" method="post"><br /><input id="file" name="file" type="file"><br /><input type="submit" value="Upload"><br /></form><br /></div>
view.py
# -*- coding: utf-8 -*-<br />from django.http import HttpResponse<br />import Image<br />def upload(request):<br /> reqfile = request.FILES['file']<br /> image = Image.open(reqfile)<br /> image.thumbnail((128,128),Image.ANTIALIAS)<br /> image.save("/home/lhb/1.jpeg","jpeg")<br /> return HttpResponse("success.")<br />