一、form表单上传文件
1、编写上传页面upload.html
<body>
<form method="post" action="/upload/" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" name="title"><br>
<input type="file" name="pic"/><br>
<input type="submit" value="上传">
</form>
</body>
2、设置url
urlpatterns = [
url(r'^upload/', views.upload),
]
3、setting中设置上传文件的存放地址
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')
4、编写视图函数
def upload(request):
if request.method == "GET"
return render(request, "upload.html")
if request.method == "POST":
f1 = request.FILES['pic']
picName = os.path.join(settings.MEDIA_ROOT, f1.name)
with open(picName, 'wb') as pic:
for c in f1.chunks():
pic.write(c)
return HttpResponse('<img src="/static/media/%s"/>' % f1.name)
else:
return HttpResponse("error")
总结:基于form表单上传文件,上传后页面会刷新。如果使用数据库,将上传文件的地址保存在数据库中。