【新人填坑027】如何使用Django获取从前端input表单上传过来的图片到FastDFS保存

我原先是通过fdfs的upload_by_filename 方法上传,总是出错,耽误了两天时间去排错,网上各种搜也没有答案,后来索性更换方式,就修改了两行代码,竟然ok.记下来,能帮一个是一个。

                                                                          原来的报错内容可去这里看图 https://ask.csdn.net/questions/767762

下面视图函数内容 用于接收上传内容

class JhQcodeUpload(LoginRequiredMixin,View):

    def post(self,request):
        user_id  = request.user.id  # 获取上传用户的id 没必要的可以不写

        content = request.FILES['pic1'] # 这个有回传 值为图片文件的名字
        client = Fdfs_client('/etc/fdfs/client.conf')  # 连接fdfs客户端 就像连接redis一样
        res = client.upload_by_buffer(content.read()) #按上传文件内容保存 所以content.read()
        pic=res.get('Remote file_id')  #获取上传后返回的文件路径或者说为文件名字
        User.objects.filter(id=user_id).update(qcode=pic) # 存入相对应用户的数据库
        return JsonResponse({'res': 1, 'message': 'ok'}) 

上面这是后端接收时用的代码,至于request.FILES是什么 看下面图

附前端html代码:  注意 当使用post方法上传时 enctype="multipart/form-data" 这串代码要带上 这样上传的数据里才有各种参数 

                 <span>

                    <form method="post" action="/juhe/setqcode" enctype="multipart/form-data">
                        {% csrf_token %}
                        <input type="file" name="pic1"/>
                        <input type="submit" name="wxpay" value="上传">
                    </form>
                </span>

如果需要fdfs配置里的内容,网上倒是一艘一堆,需要的话也可以再联系我。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值