在Python中检查上传的文件类型可以通过文件扩展名和文件内容进行验证。
注意事项:
以下是一个示例代码,用于检查上传到Python中的内容类型文件:
import os
def check_file_type(file_path):
# 允许的文件类型列表
allowed_file_types = ['.txt', '.csv', '.jpg', '.png']
# 获取文件扩展名
file_ext = os.path.splitext(file_path)[1].lower()
if file_ext in allowed_file_types:
return True
else:
return False
def check_file_type_with_magic_number(file_path):
# 文件类型及其对应的魔术数字
magic_numbers = {
'text/plain': b'\x68\x65\x6c\x6c\x6f',
'image/jpeg': b'\xff\xd8\xff',
'image/png': b'\x89\x50\x4e\x47\x0d\x0a\x1a\x0a'
}
# 读取文件的魔术数字
with open(file_path, 'rb') as file:
file_content = file.read(8)
# 对比魔术数字
for file_type, magic_number in magic_numbers.items():
if file_content.startswith(magic_number):
return file_type
return None
# 示例用法
file_path = '/path/to/uploaded_file.txt'
# 使用文件扩展名进行验证
if check_file_type(file_path):
print("文件类型正确")
else:
print("文件类型错误")
# 使用魔术数字进行验证
file_type = check_file_type_with_magic_number(file_path)
if file_type:
print("文件类型为:", file_type)
else:
print("未知文件类型")
注意:上述示例代码仅演示了如何进行文件类型检查,实际应用中可能需要结合其他安全措施来确保上传文件的安全性。
领取专属 10元无门槛券
手把手带您无忧上云