Django使用Ajax上传图片只上传名字未上传文件

遇到这个问题确实很苦恼,我也不知道怎样说。
应该是把Ajax想象的太强大了,还是我写错了。
当我们使用Ajax提交图片,前端的流程就是在Form下添加一个属性 enctype="multipart/form-data",然后submit 改为 button,通过添加到Formdata中进行提交到后台,后台的操作就是使用request.FILES.get('img')获取这个Formdata对象,通过Update更新到数据库中,但是只改的名字没有上传,后来无奈只能进行切片数据,然后在写入。
疑问:为何不能直接添加到数据库加上传文件?

前端:

   

后端:

img = request.FILES.get('img')
img_name =img.name
img_name01 = 'icon/'+img.name
file_path = os.path.join(settings.BASE_DIR,'upload/icon',img_name)
User.objects.filter(idcard=idcard).update(headimg=img_name01)
with open(file_path, 'wb') as f:
    for chunk in img.chunks():
        f.write(chunk)

还请大家指点迷津,不胜感激!

你可能感兴趣的:(Django)