解决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学习之asyncore模块用法实例教程
Sep 29 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
python 接口返回的json字符串实例
Mar 27 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
520使用Python实现“我爱你”表白
May 20 Python
python statsmodel的使用
Dec 21 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 Python
Python实现生成bmp图像的方法
Jun 13 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
Terran剧情介绍
2020/03/14 星际争霸
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
面试求职的个人自我评价
2013/11/16 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
创建文明城市标语
2014/06/16 职场文书
合作经营协议书范本
2014/09/16 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
民政局个人整改措施
2014/09/24 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
2015年妇女工作总结
2015/05/14 职场文书
主婚人致辞精选
2015/07/28 职场文书