上传文件必备的三要素
1、from标签
2、enctype="multipart/form-data"
3、input标签,具有name属性,用于后端取值用type="submit"
- upload.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="/upload/" method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>
<input type="file" value="上传文件" name="up">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
</body>
</html>
- 设置路由
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^upload/', views.upload),
]
- 视图函数
request.FILES.get("up")取得文件名对象
with open("xxx.jpg",'wb')as f 将文件保存为xxx.jpg,以二进制形式写入。
for line in file_obj: 一行行的写入文件
def upload(request):
if request.method =="POST":
file_obj = request.FILES.get("up")
# with open("xxx.jpg",'wb')as f:
with open(file_obj.name,'wb')as f:
for line in file_obj:
f.write(line)
return render(request,"upload1.html")