Django上傳圖片用PIL產生縮圖

來源:互聯網
上載者:User

網上搜過幾個版本,一是亂寫,二是複雜。容易出錯有兩個地方:

一是不知道怎麼從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 />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.