Django 文件上传

在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 条评论)
   
验证码:

相关文章

'); })();