解决python 上传图片限制格式问题


Posted in Python onOctober 30, 2019

终于忙完有空更新了,这次说下一个比较简单的东西,限制上传图片格式问题。

先上代码!

img_file = 'D:\\image\\test.jpg'
    # uuid生成文件名
    key = shortuuid.ShortUUID().random(length=9)
    if img_file.size > 2097152:
      raise exceptions.APIException('图片大小超出限制')
    # file_postfix = img_file.name.split('.')[1]
    suffix = img_file.name.rfind('.')
    if suffix == -1:
      raise exceptions.APIException('图片不正确')
    file_postfix = img_file.name[suffix + 1:] 
    if file_postfix not in ['jpg', 'png', 'gif', 'bmp', 'jpeg', 'JPG', 'PNG',
                'BMP', 'JPEG', ]:
      raise exceptions.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 上传图片限制格式问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
基于进程内通讯的python聊天室实现方法
Jun 28 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
浅谈Python NLP入门教程
Dec 25 Python
python利用百度AI实现文字识别功能
Nov 27 Python
python实现简易学生信息管理系统
Apr 05 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
python将数组n等分的实例
Dec 02 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
python正则表达式实例代码
Mar 03 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
Opencv求取连通区域重心实例
Jun 04 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
Python字典的概念及常见应用实例详解
Oct 30 #Python
Python集合基本概念与相关操作实例分析
Oct 30 #Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 #Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 #Python
python常见字符串处理函数与用法汇总
Oct 30 #Python
pygame库实现俄罗斯方块小游戏
Oct 29 #Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 #Python
You might like
多数据表共用一个页的新闻发布
2006/10/09 PHP
php 远程图片保存到本地的函数类
2008/12/08 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python实现的爬虫功能代码
2017/06/24 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
详解python中__name__的意义以及作用
2019/08/07 Python
基于python实现从尾到头打印链表
2019/11/02 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
幼儿园教师教育感言
2014/02/28 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android