django的图片上传(处理图片大小,图片如果如果存在就改变文件名)
来源:互联网 发布:淘宝模特兼职靠谱吗 编辑:程序博客网 时间:2024/06/05 17:48
django的图片上传(处理图片大小,图片如果如果存在)
PIL的文档Image模块第二个例子就是讲生成缩略图的。image.thumbnail就可以了。参考:http://www.pythonware.com/library/pil/handbook/image.htm
django的文件 图片上传
一直以为django的文件跟图片上传问题很麻烦,在网上找了好久,找了很多麻烦的方法 但是效果还不好,今天在无意中突然发现其实很简单,简单的要死! 晕!
以前我是这样写views的: (这是在有forms.py的情况下 )
from PIL import Image
from juxin import settings
f = request.FILES["file"] (如果是直接上传的话<没有forms.py>用request.FILES.get['file'])
parser = ImageFile.Parser()
for chunk in f.chunks():
parser.feed(chunk)
img = parser.close()
name = '%s%s' % (settings.MEDIA_ROOT, f.name) ##这里的时保存文件的路径加名字!
img.save(name)
这种方法可以将图片保存到你想要的位置,也可以是文件!但是怎么在templates上显示上传的图片就是个麻烦问题,要重新设置MEDIA_ROOT,跟STATIC_ROOT,所以不推荐使用!
下面介绍最简单的方法!!!
那就是!!!:::
1:当然要先设置models.py
image= models.ImageField(upload_to='photos/%Y/%m/%d', blank=True,null=True)
这里的upload_to是必须的参数,他会把上传的文件保存到MEDIA_root +upload_to后便的路径,
2:然后设置跟form.py
image = forms.ImageField(required=False)
3:前台的是这样的post数据
<form action="/upload/" method="post" enctype="multipart/form-data">这个是一定要有的,如果你还要上传文字或者其他的东西,在form中间加就行了,比喻<legend>标题</legend> <input type="text" name="title" id="title">
<form>
<fieldset>
<legend>上传文件</legend>
<input type="file" name="docfile" />
<input type="submit" value="上传"/>
</fieldset>
</form>
4:再就是views.py了,要先导入forms中的类!
if 'file' in request.FILES: 这里是重点!为什么我要判断file呢?因为如果你想不传文件(也就是字段为空),但是还是要传其他的字段(如:我只想传标题,而图片我不传), 那么必 须要判断下。不然会报错"Key 'file' not found in <MultiValueDict: {}>"
image = request.FILES["file"]
else:
image=None
然后把得到的图片保存到数据库,django保存的知识图片或者文件的url,图片保存在本地计算机上,这样提高django运行效率,s=Info(image=image)
s.save()
5: 最后一步就是让图片在templates中显示了!!!!
{% if info.image %}<img src='{{ info.image.url }}' />{% endif %}
在django book里说得到图片的绝对路径是这样的:{{ info.get_image_url }},这个是错误的!!这个是0.9版本的用法!
当然 这里也要做下判断,如果image为null的话,他就不显示,注意: 这里判断的不是{% if info.image.url %}!
- django的图片上传(处理图片大小,图片如果如果存在就改变文件名)
- 计算图片大小,如果从内存和本地取不到图片,就去下载,并计算图片大小
- 上传图片并改变图片大小
- 图片上传,如果能用lightbox就更好了
- WeCenter 中 (可能所有图片上传功能)图片上传如果出现图片上传无反应
- java 图片上传的处理,获取图片大小,宽高。
- 2.给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
- 2.给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
- 给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
- asp.net上传图片并判断是否存在限制图片大小
- 输入文件名-如果文件存在-读文件内容(Python)
- 如果一个函数中有局部对象的存在, 那么它就一定会存在 C++ 的异常处理机制
- JavaScript判断远程图片是否存在,加载完成:onerror 属性- & jQuery实现(如果因为网络或图片的原因发生异常,则显示该图片)~
- Magento 获取当前分类图片路径(如果当前分类没有图片,就获取上一级分类的图片路径)
- 如果网站有大量的图片,是存在数据库好?还是存文件?
- 判断页面上控件的值是否已经改变,如果发生改变,我们就需要对其做相关处理
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- 有关PHP文档生成工具---PHPDocumentor
- PHP 导入导出Excel方法小结
- 细数大型数据库设计的七大原则
- SQL删除重复记录的N种方法
- CSS颜色代码大全
- django的图片上传(处理图片大小,图片如果如果存在就改变文件名)
- 统计单词个数
- 关于蹭网的秘密chanel
- 浅谈字符集(字符编码)
- 虚拟机报错:fail to lock file
- C++基础之继承
- WEB测试用例
- python 菜鸟学习笔记
- LDD学习课程之二