以下是一个示例代码,用于解决不可以上传两个相同的图片文件的问题:
import hashlib
def check_duplicate(file_path):
# 读取文件内容
with open(file_path, 'rb') as f:
content = f.read()
# 计算文件的哈希值
md5_hash = hashlib.md5(content).hexdigest()
# 检查是否存在相同的哈希值
# 如果存在相同的哈希值,说明是相同的文件
if md5_hash in uploaded_files:
print("不可以上传两个相同的图片文件。")
return False
# 将哈希值存储起来,以便后续检查
uploaded_files.add(md5_hash)
# 执行上传操作
upload_file(file_path)
return True
def upload_file(file_path):
# 实现上传操作
print("上传文件:", file_path)
uploaded_files = set()
# 测试
check_duplicate("image1.jpg") # 第一次上传,可以成功
check_duplicate("image1.jpg") # 第二次上传,会提示不可以上传两个相同的图片文件
check_duplicate("image2.jpg") # 上传另外一个不同的文件,可以成功
在示例代码中,check_duplicate
函数用于检查文件是否重复上传。它首先读取文件内容,然后计算文件的哈希值。如果该哈希值在 uploaded_files
集合中已经存在,则说明该文件是重复上传的,不可以继续上传。否则,将文件的哈希值存储起来,并执行上传操作。
注意,示例中使用的是文件的 MD5 哈希值作为判断依据。如果需要更高的准确性,可以使用其他哈希算法,如 SHA256。另外,为了提高效率,可以将已上传文件的哈希值存储在数据库或缓存中,以便快速检查。
上一篇:不可引用引用的项目