django Form组件 上传文件
上传文件
注意:FORM表单提交文件要有一个参数enctype="multipart/form-data"
普通上传:
urls:
url(r'^f1/',views.f1),
url(r'^f2/',views.f2),
views:
def f1(request):
if request.method == "GET":
return render(request,'f1.html') else:
import os #导入os模块
#request.get / post /FILES方式.get()取值 去文件name=fafafa的值
file_obj=request.FILES.get("fafafa") #拿到一个文件对象
f=open(os.path.join('static',file_obj.name),'wb') #将文件名加入到static目录下
for chunk in file_obj.chunks(): #chunk块 文件的大小,循环file_obj文件对象.chunks
f.write(chunk)#写到文件里面去
f.close()
# return HttpResponse(".....")
return render(request,'f1.html')
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="POST" action="/f1/" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" name="user">
<input type="file" name="fafafa" >
<input type="submit" value="提交"> </form>
</body>
</html>
Form组件上传:
views:
class F2Form(Form):
user=fields.CharField()
fafafa=fields.FileField() def f2(request):
if request.method == "GET":
obj=F2Form()
return render(request,'f2.html',{'obj':obj})
else:
obj=F2Form(data=request.POST,files=request.FILES) #以POST的方式获取到文件的所有对象
if obj.is_valid(): #校验拿取的文件对象
# print(obj.cleaned_data)
print(obj.cleaned_data.get('fafafa').name) #校验成功 获取上传文件对象的 fafafa 文件名
print(obj.cleaned_data.get('fafafa').size) #获取文件对象的fafafa size大小
return render(request,'f2.html',{'obj':obj}) #错误信息的时候 就返回到前端页面 继续上传
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="POST" action="/f2/" enctype="multipart/form-data">
{% csrf_token %}
{{ obj.user }}
{{ obj.fafafa }}
<input type="submit" value="提交">
</form>
</body>
</html>
django Form组件 上传文件的更多相关文章
- 使用commons-fileUpload组件上传文件
在近期的一个项目中有用到commons-fileUpload组件进行实现文件上传的功能(由于没用到框架),在使用的过程中有遇到一些问题,经过自己的琢磨也算顺利地将其解决了,在这里做个记录. 一.com ...
- django实现分片上传文件
目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib i ...
- EasyUI 关于IE使用window组件上传文件
有时候IE会对使用window组件上传文件(第二次)不生效,解决方案是: 将该window每次打开的时候,使用: $('#adUploadWindow').window('refresh', 'pan ...
- Django之用户上传文件的参数配置
Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ...
- 前端 - jquery方式 / iframe +form 方式 上传文件
环境与上一章一样 jquery 方式上传文件: HTML代码 {#html代码开始#} <input type="file" id="img" > ...
- Django session cookie 上传文件、详解
session 在这里先说session 配置URL from django.conf.urls import patterns, include, url from django.contrib i ...
- 关于commons-fileupload组件上传文件中文名乱码问题
java web开发,常用到的文件上传功能,常用的commons-fileupload和commons-io两个jar包.关于如何使用这两个jar来完成文件上传的功能,这里不做详解.使用commons ...
- javaweb-番外篇-Commons-FileUpload组件上传文件
一.Commons-FileUpload简介 Commons-FileUpload组件 Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件 ...
- django + dropzone.js 上传文件
1.dropzone.js http://www.dropzonejs.com/ dropzone.js是一个可预览\可定制化的文件拖拽上传,实现AJAX异步上传文件的工具 2.dropzone.js ...
随机推荐
- javap -c命令关键字的含义
jdk提供了javap命令用于查看字节码来查看程序执行赋值的顺序,看懂这些关键字可以很好的理解程序执行的过程 转自:http://www.cnblogs.com/duanxz/archive/2014 ...
- 【Flask】 Jinja2模板语言
Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多 ...
- 面试长谈的String,StringBuffer,StringBuilder三兄弟有啥区别
1.String: /** Strings are constant; their values cannot be changed after they * are created. String ...
- Axure RP初学
制作商品购买页
- Linux x86_64内核中断初始化
Linux x86_64内核中断初始化 [TOC] 中断分类 Linux系统中,中断分为: 硬中断:由外部设备或者执行异常产生的需要快速处理的中断.如缺页中断.定时器硬件中断. 根据内部产生还是外部产 ...
- Java终结方法的使用(终结守卫者)
终结方法finalize()通常是不可预测的,也是很危险的,一般情况下是不必要的. Java语言规范并不保证finalize()会被及时执行,即不确定终结方法执行时间,只规定在对象被垃圾回收之前执行 ...
- Linux学习--进程概念
>>进程 说进程,感觉好空洞,来一张图,Linux下的进程: ps -eo pid,comm,cmd 说明:-e表示列出全部进程,-o pid,comm,cmd表示我们需要PID,COMM ...
- Hibernate之ORM与Hibernate
ORM: ORM是 Object /Relation Mapping,对象/关系数据库映射. 目前比较流行的编程语言,如java ,c#等,它们都是面向对象的编程语言,而目前比较主流的数据库产品,如O ...
- 从PRISM开始学WPF(三)Prism-Region?
从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WPF(三)Prism-Region? 从PRISM开始学WPF(四)Prism-Module? ...
- 同样是IT培训,为什么人家月薪过万,你才几千,问题在哪?!
听过一句话"360行,行行转IT",虽然有些夸张,但也不难看出IT行业的火爆程度.从李总理提的"互联网+大数据"开始,中国的这场"互联网+" ...