前提:
图片服务器需要做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)
即可