解决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面相对象编程中对象的属性与类的方法
Jan 19 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
Mar 14 Python
python实现机器学习之多元线性回归
Sep 06 Python
pandas删除指定行详解
Apr 04 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
详解Django模版中加载静态文件配置方法
Jul 21 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
python 绘制国旗的示例
Sep 27 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
用python自动生成日历
Apr 24 Python
Python天气语音播报小助手
Sep 25 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 socke 向指定页面提交数据
2008/07/23 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
学习YUI.Ext 第三天
2007/03/10 Javascript
javascript调试说明
2010/06/07 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
详解Python中的strftime()方法的使用
2015/05/22 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
中专生职业生涯规划书范文
2014/01/10 职场文书
八年级语文教学反思
2014/02/11 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
期末复习计划
2015/01/19 职场文书
KTV员工管理制度
2015/08/06 职场文书
小学感恩主题班会
2015/08/12 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技