解决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进阶教程之函数对象(函数也是对象)
Aug 30 Python
python关键字and和or用法实例
May 28 Python
python3中str(字符串)的使用教程
Mar 23 Python
python绘制圆柱体的方法
Jul 02 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
基于Tensorflow一维卷积用法详解
May 22 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 24 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
PHP $_FILES函数详解
2011/03/09 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
10 个经典PHP函数
2013/10/17 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python之信息加密题目详解
2019/06/26 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
置业顾问岗位职责
2014/03/02 职场文书
绩效管理实施方案
2014/03/19 职场文书
献爱心标语
2014/06/21 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
模范教师事迹材料
2014/12/16 职场文书
吴仁宝观后感
2015/06/09 职场文书
创业计划书之酒吧
2019/12/02 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis