django接收图片

划重点:

request.FILES.get('file', None)
enctype="multipart/form-data"

后端

def updateAvatar(request):
    if request.method == 'POST':
        res: dict = {'success': False, 'message': ''}
        uID = request.POST.get('uID')
        user = User.objects.filter(id=int(uID))
        if len(user) == 0:
            res['message'] = '用户不存在'
            return JsonResponse(res, safe=False)
        user = user.get()
        file_obj = request.FILES.get('file', None)
        relative_path = os.path.join('static', 'user', str(uID), 'avatar')
        dir_path = os.path.join(BASE_DIR, 'media', relative_path)
        if not os.path.exists(dir_path):  # 拼接的路径是否被创建
            os.makedirs(dir_path)
        fileName = time.strftime("%Y-%m-%d-%H%M%S") + file_obj.name
        file_path = os.path.join(dir_path, fileName)
        with open(file_path, 'wb') as f:
            for chunk in file_obj.chunks():
                f.write(chunk)
        relative_path = os.path.join(relative_path, fileName)
        user.avatorUrl = 'ip地址' + relative_path
        user.save()
        res['message'] = '修改成功'
        res['success'] = True
        res['url'] = user.avatorUrl
        res['relativePath'] = relative_path
        return JsonResponse(res)

Postman测试

在这里插入图片描述
在这里插入图片描述

前端

<form accept-charset="UTF-8" action="跳转链接" method="post" enctype="multipart/form-data">
    <div>
        <input type="file" name="t_photo" accept="image/*">
    </div>
</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值