django的图片上传(处理图片大小,图片如果如果存在就改变文件名)

本文介绍了在Django中如何实现图片上传,并处理图片大小。当图片已存在时,还会讨论如何更改文件名以避免冲突。
摘要由CSDN通过智能技术生成

 

django的图片上传(处理图片大小,图片如果如果存在)

 

PIL的文档Image模块第二个例子就是讲生成缩略图的。image.thumbnail就可以了。参考:http://www.pythonware.com/library/pil/handbook/image.htm

views.py
from PIL import Image
#这个没有设置forms.py
def upload(request):      
    reqfile = request.FILES['photo']  # request.FILES['file'](file是你上传输入框的名称)就是一个文件  
    image = Image.open(reqfile)  
    image.thumbnail((128,128),Image.ANTIALIAS)                                                                                 image.save("c:/photo/1.jpeg","jpeg") #这里是将图片都将会以1.jpeg名字保存 
    return HttpResponse("success.")  
前台是
<form action="/upload/" method="post" enctype="multipart/form-data">
<fieldset>
<legend>上传文件</legend>
<input type="file" name="photo" />
<input type="submit" value="上传"/>
</fieldset>
</form>
但是这个方发将所有的图片保存一个名字。而且传下个图片会覆盖原来的图片 所以需要改文件名:以下是我的项目的code:
views/py
import os
import random
from juxin.app.models import Info
from PIL import Image
           
             if 'file' in request.FILES:  # 这里是重点!为什么我要判断file呢?因为如果你想不传文件(也就是这个字段为空),但是还是要传其他的字段(如:我只想传标题,而图片我不传),   那么必 须要判断下。不然会报错"Key 'file' not found in <MultiValueDict: {}>"
                image = request.FILES["file"]
               img= Image.open(image)
               img.thumbnail((250,250),Image.ANTIALIAS)
               
                url='photos/'+image.name  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值