Django--上传文件
需求
Django中forms表单上传文件处理
速查
views.py
1
2
3
4
5
6
7
8
9
def
upload(request):
if
request.method
=
=
'POST'
:
inp_files
=
request.FILES
file_obj1
=
inp_files.get(
'f1'
)
f
=
open
(file_obj1.name,
'wb'
)
for
line
in
file_obj1.chunks():
f.write(line)
f.close()
return
render(request,
'home/upload.html'
)
知识点
- 上传文件是必须加上:enctype="multipart/form-data",代表分片传输。
- request.FILES是上传的文件,获取某个文件,是get那个name属性名。
- obj.name获取文件名,obj.size获取文件大小。
- obj.chunks()是上传文件的所有分片集合,循环每一个分片,write写入文件。
详细
templates/home/upload.html
1
2
3
4
5
6
<
form
action
=
"/upload/"
method
=
"POST"
enctype
=
"multipart/form-data"
>
<
p
><
input
type
=
"file"
name
=
"f1"
/> </
p
>
<
p
><
input
type
=
"file"
name
=
"f2"
/> </
p
>
<
p
><
input
type
=
"text"
name
=
"name"
/> </
p
>
<
input
type
=
"submit"
value
=
"Upload"
/>
</
form
>
app01/urls.py
1
2
3
4
from
app01.views
import
home
urlpatterns
=
[
url(r
'^upload/'
, home.upload),
]
app01/views/home.py
1
2
3
4
5
6
7
8
9
def
upload(request):
if
request.method
=
=
'POST'
:
inp_files
=
request.FILES
file_obj1
=
inp_files.get(
'f1'
)
f
=
open
(file_obj1.name,
'wb'
)
for
line
in
file_obj1.chunks():
f.write(line)
f.close()
return
render(request,
'home/upload.html'
)
browser
1
2
3
4
5
6
7
8
9
|
def upload(request): if request.method = = 'POST' : inp_files = request.FILES file_obj1 = inp_files.get( 'f1' ) f = open (file_obj1.name, 'wb' ) for line in file_obj1.chunks(): f.write(line) f.close() return render(request, 'home/upload.html' ) |
- 上传文件是必须加上:enctype="multipart/form-data",代表分片传输。
- request.FILES是上传的文件,获取某个文件,是get那个name属性名。
- obj.name获取文件名,obj.size获取文件大小。
- obj.chunks()是上传文件的所有分片集合,循环每一个分片,write写入文件。
详细
templates/home/upload.html
1
2
3
4
5
6
<
form
action
=
"/upload/"
method
=
"POST"
enctype
=
"multipart/form-data"
>
<
p
><
input
type
=
"file"
name
=
"f1"
/> </
p
>
<
p
><
input
type
=
"file"
name
=
"f2"
/> </
p
>
<
p
><
input
type
=
"text"
name
=
"name"
/> </
p
>
<
input
type
=
"submit"
value
=
"Upload"
/>
</
form
>
app01/urls.py
1
2
3
4
from
app01.views
import
home
urlpatterns
=
[
url(r
'^upload/'
, home.upload),
]
app01/views/home.py
1
2
3
4
5
6
7
8
9
def
upload(request):
if
request.method
=
=
'POST'
:
inp_files
=
request.FILES
file_obj1
=
inp_files.get(
'f1'
)
f
=
open
(file_obj1.name,
'wb'
)
for
line
in
file_obj1.chunks():
f.write(line)
f.close()
return
render(request,
'home/upload.html'
)
browser
1
2
3
4
5
6
|
< form action = "/upload/" method = "POST" enctype = "multipart/form-data" > < p >< input type = "file" name = "f1" /> </ p > < p >< input type = "file" name = "f2" /> </ p > < p >< input type = "text" name = "name" /> </ p > < input type = "submit" value = "Upload" /> </ form > |
1
2
3
4
|
from app01.views import home urlpatterns = [ url(r '^upload/' , home.upload), ] |
1
2
3
4
5
6
7
8
9
|
def upload(request): if request.method = = 'POST' : inp_files = request.FILES file_obj1 = inp_files.get( 'f1' ) f = open (file_obj1.name, 'wb' ) for line in file_obj1.chunks(): f.write(line) f.close() return render(request, 'home/upload.html' ) |
传输的位置如果没指定,默认是项目的 “/”根目录。
Django--上传文件的更多相关文章
- (转)django上传文件
本文转自:http://www.cnblogs.com/linjiqin/p/3731751.html 另: 本文对原文做了适当修改 更为详细的介绍可以参考官方文档. emplate html(模板 ...
- django上传文件
template html(模板文件): <form enctype="multipart/form-data" method="POST" action ...
- 实现简单的django上传文件
本文用django实现上传文件并保存到指定路径下,没有使用forms和models,步骤如下: 1.在模板中使用form表单,因为这个表单使用于上传文件的,所以method属性必须设置为post,而且 ...
- Django上传文件和上传图片(不刷新页面)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Django上传文件的那些参数
# ################## 默认文件上传配置 ######################## from django.core.files.uploadhandler import M ...
- 20-1 django上传文件和项目里上传头像如何查看
一 普通上传方式 1 views def upload(request): if request.method == "POST": # print(request.POST) # ...
- Django上传文件的两种方式
基于form表单上传文件 HTML <h3>基于form表单的上传文件</h3> <form action="" method="post& ...
- 【python】django上传文件
参考:https://blog.csdn.net/zahuopuboss/article/details/54891917 参考:https://blog.csdn.net/zzg_550413470 ...
- Python - Django - 上传文件
upload.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- django 上传文件及反馈信息
from django.shortcuts import render,HttpResponse from django.views import View from Fiskars.models i ...
随机推荐
- VB中WinSock控件的属性、方法、事件及应用
一.WinSock简介 Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流行的 ...
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非 ...
- ubuntu下matplotlib画图中文乱码问题
最近因为论文原因在学习机器学习,看的一本叫做<机器学习实战>的书,看了看还是不错的,因为其中既有原理又有实例.今天载使用matplotlib进行画图时,发现中文会显示为小方块,这个问题真是 ...
- C# 个人常用代码积累
/// <summary> /// TextBox限制只能输入十六进制,且只能输入6个 /// </summary> /// <param name="send ...
- Python将文本生成二维码
#coding:utf-8 ''' Python生成二维码 v1.0 主要将文本生成二维码图片 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 ''' __autho ...
- 3.C#中的多重委托
阅读目录 一:多重委托概述 二:多重委托实例 一:多重委托概述 1.委托的调用其实是一个调用列表,可以同时调用多个不同的方法 2.第1个委托加上第2个委托赋予第3个委托,相当于把两个方法按顺 ...
- Python: 如何继承str/string?
想搞一个对象继承自str,然后存一些额外信息用来标识这个字符串,然后理所当然地重写了__init__发现跪了: class newstring(str): def __init__(self, val ...
- Win 8.1 下 安装 SQL2005
1.http://blog.csdn.net/lvjin110/article/details/25122879 2.SQL2005版本 需要是 SQL2005开发版
- cocos2dx 2.x 骨骼动画优化
本文原链接:http://www.cnblogs.com/zouzf/p/4450861.html 公司用的骨骼动画的版本貌似还停留在2.1之前的年代而已没有更新,该因各种历史原因吧,而有个大项目“一 ...
- ThreadPoolExecutor
ThreadPoolExecutor机制 一.概述 1.ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程 ...