解决python 上传图片限制格式问题
终于忙完有空更新了,这次说下一个比较简单的东西,限制上传图片格式问题。
先上代码!
img_file='D:\\image\\test.jpg' #uuid生成文件名 key=shortuuid.ShortUUID().random(length=9) ifimg_file.size>2097152: raiseexceptions.APIException('图片大小超出限制') #file_postfix=img_file.name.split('.')[1] suffix=img_file.name.rfind('.') ifsuffix==-1: raiseexceptions.APIException('图片不正确') file_postfix=img_file.name[suffix+1:] iffile_postfixnotin['jpg','png','gif','bmp','jpeg','JPG','PNG', 'BMP','JPEG',]: raiseexceptions.APIException('图片格式不正确') file_name=key+'.'+file_postfix
以前项目里总是再用file_postfix=img_file.name.split('.')[1]这种方法再取文件后缀进行判断格式,这种方法对普通的文件名还是没问题的例如:图片1.jpg、图片2.jpg、图片3.jpg。但是遇到www.图片1.jpg这种的图片名称就会爆炸,因为图片名称中存在两个.
suffix=img_file.name.rfind('.')而str的rfind方法就可以避免这种问题,因为这是反响寻找。举个例子
a='123456' print('下标',a.rfind('5'))
输出结果:下标4
a='123456' print('下标',a.rfind('7'))
输出结果:下标-1
rfind方法从字符串最后以为开始找,找到返回下标,找不到返回-1。
所以www.test.jpg这种格式的图片他会从最后位置开始找.找到之后在截取就只剩jpg了,也就好判断了。
要注意的是rfind的下标是从0开始的,所以截取的时候记得加1。
行了其他的基本没啥了。这篇文章就到这吧,最近会更新上传图片到微信服务器。
总结
以上所述是小编给大家介绍的解决python上传图片限制格式问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。