吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1060|回复: 7
收起左侧

[求助] python上传图片接口求助

  [复制链接]
syf1313113 发表于 2022-1-9 17:35
一直获取不到文件 麻烦大佬给看下是哪里的问题
[Python] 纯文本查看 复制代码
获取图片接口:
def post(request):
    if request.method == "POST":
        #  获取上传文件的处理对象,通过对象获取里面文件名称和内容
        # img = request.FILES.getlist("files", None)
        img = request.FILES.getlist('image')
        print(img)
        # print(img.pathName)   # 获取文件名称
        # print(img.chunks)  # 获取文件内容
        # 创建文件
        # save_path = '{}/up_image/{}'.format(settings.MEDIA_ROOT,img.name)
        # with open(save_path,'wb') as f:
        #     for content in img.chunks():
        #         f.write(content)
        # # 报存到数据库
        # FileUpload.objects.create(name=img.name)
        return HttpResponse("ok")
    else:
        return HttpResponse('方法错误')
上传图片接口:
def upload(pathName,pathRoute,pathType):
    '''上传图片'''
    # Cookie = login(getCookie=True)
    url = 'http://127.0.0.1:8000/api'
    file = open(pathRoute,'rb')
    print(file)
    files = {
            'image':(pathName,file,pathType),
             'bucketName':(None,'banner'),
             'type':(None,'image')
             }
    # image中写入的参数为:图片的名称(pathName),以二进制形式打开文件(file),文件类型(pathType)
    # headers = Cookie
    res = requests.post(url=url,files=files).json
    return res

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

thepoy 发表于 2022-1-9 18:11
file open 后没有调用 file.close(),新手们经常会犯的错误,所以 python 特人性化地推荐你使用 with open。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
liyitong + 1 + 1 我很赞同!

查看全部评分

 楼主| syf1313113 发表于 2022-1-9 18:15
thepoy 发表于 2022-1-9 18:11
file open 后没有调用 file.close(),新手们经常会犯的错误,所以 python 特人性化地推荐你使用 with open ...

with open(pathRoute,'rb') as file:   这样吗
三滑稽甲苯 发表于 2022-1-9 19:15
syf1313113 发表于 2022-1-9 18:15
with open(pathRoute,'rb') as file:   这样吗

是这样的,后面的代码加缩进就行了
 楼主| syf1313113 发表于 2022-1-9 19:24
三滑稽甲苯 发表于 2022-1-9 19:15
是这样的,后面的代码加缩进就行了

为什么这行代码。img = request.FILES.getlist("file", None)  只能取到前面files={'file':xxx,'name':yyy}中的file或者name。怎么一块取这个files
Anekys 发表于 2022-1-9 21:56
微信截图_20211121180159.png
让我们来看看官方文档中是如何上传文件的吧
dleo 发表于 2022-1-9 22:04
request.FILES.getlist("files")
前端post的字段是files 这里就能取到files了
wshuo 发表于 2022-1-10 19:36
本帖最后由 wshuo 于 2022-1-10 19:37 编辑

虽然open()文件后一般用close() 进行关闭,但是这个问题不影响你这个代码,你应该详细说明一下后端用的是什么框架(例如flask还是django), 然后客户端代码一个小问题 .json 返回是一个函数,而不是json, 要返回json应该 .json(), 看你后端代码返回的并不是json, 所以建议使用 .text ,返回文本(text不是函数是一个属性), 调试代码的时候也关注一下后端代码是否报错,看看是否执行到return了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表