解决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中进行自动化单元测试的教程
Apr 15 Python
Python 中 Meta Classes详解
Feb 13 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
django将数组传递给前台模板的方法
Aug 06 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
在keras里实现自定义上采样层
Jun 28 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 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中explode与split的区别介绍
2012/10/03 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
nodejs多版本管理总结
2018/04/03 NodeJs
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Python自定义线程类简单示例
2018/03/23 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
使用python制作一个解压缩软件
2019/11/13 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
Python random模块的使用示例
2020/10/10 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
联欢会开场白
2015/06/01 职场文书