大家好,我是米洛,一个想和大家一起分享测试开发
相关的技术,面试经验和成长经历的博主!
今天比较短,故事来!
故事
榜一大哥正在做一个用户头像上传
的功能,为了安全起见,他需要对文件进行校验,判断用户传的是不是图片。常见的图片后缀有哪些呢?
- png
- jpg
- jpeg
- gif
- bmp(好像也没啥人用)
我们常见的有这些,svg
和icon
那种更适合当图标,我们就不算了。
简化
我们在接受到文件的时候,可以拿到文件名,我们只需要判断文件名后缀
是不是标准的文件格式即可。
很多人都知道startswith和endswith,所以我们可以利用这个方法去判断:
filename = "xxxx.jpg" if filename.endswith(".jpg") or filename.endswith(".gif") \ or filename.endswith(".png") or filename.endswith("jpeg"): # 继续上传操作 pass else: print("请上传合法的图片")
有没有觉得这个方法很繁琐?其实endswith和startswith(判断字符串是否以xxx开头)是支持tuple的哦~
看下面的例子:
filename = "xxxx.jpg" file_type = (".jpg", ".gif", ".png", "jpeg") if filename.endswith(file_type): # 继续上传操作 pass else: print("请上传合法的图片")
这样就方便许多了!非常好用!
继续赠送
如果我们endswith/startswith的内容需要支持忽略大小写
,怎么做呢?
其实很简单,我们用filename.lower().endswith(小写tuple)
即可,这样可以既不改变filename,也可以达到忽略大小写的目的。
非常好用!!!