在django开发网页中经常会遇到需要将本地的文件上传到服务器,这里我们就需要通过post请求将数据推送到服务器上去
1 ,定义视图
def upLoadPic(request):
return render(request, 'booktest/upLoadPic.html')
2 ,定义URL
path('upLoadPic/',views.upLoadPic,name='upLoadPic'),
3 ,前台界面html
Title
{% csrf_token %}
其实这里也就是一个表单,通过post请求提交相关的数据
从上面可以看到,当点击提交的时候.post请求会携带数据发送到 这个地址,那我在定义一个处理数据的视图
上传部分
def uploadHandler(request):
if request.method == "POST":
f1 = request.FILES['pic1']
fname = '%scar/%s'%(MEDA_PATH, f1.name)
#fname = 'static/media/car/a.png'
print(fname)
with open(fname, 'wb+') as pic:
# 根据上传的流中的数据一点一点往内存中写
for c in f1.chunks():
pic.write(c)
return HttpResponse(fname)
else:
return HttpResponse("ERROR")
配置下 URL: path('uploadHandler/', views.uploadHandler,name='uploadHandler')
注释:解释下上面的内容,当post请求携带数据传到相关的页面后,这个接收页面,
1. 首先判断是不是POST请求,表单提交一定是post请求
2. 通过request.FILES['pic1'] 拿到指定的文件 pic1是传过来的键
3. 拼接需要存放的目标地址
4. 通过with,使用二进制的写权限向指定目录中写
5. 这里的 f1.chunks()表示将数据分块写到相关位置
留言与评论(共有 0 条评论) |