python open file 不大不小的坑

前提:
图片服务器需要做md5 验证,以前写了一个上传图片的方法,是吧md5,image_path 传进来,然后进行图片上传,现在感觉麻烦,就耦合在一起了,md5 不上传了,直接给一张图片路径即可,
具体如下,下面是错误的

import hashlib
    open_file = open(image_path, 'rb')
    f_cont = open_file.read()
    fmd5 = hashlib.md5(f_cont)
    file_md5 = fmd5.hexdigest()
    file_on_server_path = split_md5_info(file_md5)
    files = {'file': (file_on_server_path['image_name'], open_file, 'image/jpg')}
    headers = {'sid': sid, 'md5': file_md5}
    result = requests.post(url=url, headers=headers, files=files)

为啥错误,因为open_file read 是重头读的,就像生成器的next ,你在hashlib已经read过一次了,到files 时 已经为空了,
所以在read 后 files 前 加上,让他从第一行读即可
open_file.seek(0)
即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值