【新人填坑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是什么 看下面图

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

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

                 

                    
{% csrf_token %}

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

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

你可能感兴趣的:(新人填坑-之各种,bug)