栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python:flask获取文件的md5

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python:flask获取文件的md5

本地文件读取

def get_file_md5(file):
    f_md5 = hashlib.md5(file.read())
    return f_md5.hexdigest()
    
if __name__ == '__main__':
	file = f"{filepath}"
	with open(file,"rb") as f:
	     md5 = get_file_md5(f)

如果是FileStorage类型:

@api.route('/data_upload', methods=['GET', 'POST'])
def data_upload():
	file = request.files.get("file")
	md5 = get_file_md5(file)
    print(md5)
    #d9e22fa48bba3ee1a85804b12409953c

但是当我们在计算md5之前,进行过其他某种读取FileStorage的操作
例如对文件进行某些逻辑处理,那么计算的md5就会发现与源文件不一致。

@api.route('/data_upload', methods=['GET', 'POST'])
def data_upload():
	file = request.files.get("file")
	save_data(file) #例如对文件进行保存,或是正式的业务处理
	md5 = get_file_md5(file)
    print(md5)
    #444754b85b0b66b217d9ab9a5c6aa1e5

这是因为已经对文件流执行了read,所以需要seek回到文件的开头才能成功计算,同样适用于保存文件发现不成功的时候,不单单为计算md5。

def get_file_md5(file):
    file.seek(0) #回到文件开头
    f_md5 = hashlib.md5(file.read())
    return f_md5.hexdigest()


@api.route('/data_upload', methods=['GET', 'POST'])
def data_upload():
	file = request.files.get("file")
	md5 = get_file_md5(file)
    print(md5)
    #d9e22fa48bba3ee1a85804b12409953c
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号