解决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 translator使用实例
Sep 06 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
Python实现的Excel文件读写类
Jul 30 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
彻底理解Python list切片原理
Oct 27 Python
python删除本地夹里重复文件的方法
Nov 19 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
django和vue实现数据交互的方法
Aug 21 Python
django多种支付、并发订单处理实例代码
Dec 13 Python
python中子类与父类的关系基础知识点
Feb 02 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
中东人咖啡哲学
2021/03/03 咖啡文化
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
浅谈js原生拖放
2016/11/21 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
python对url格式解析的方法
2015/05/13 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
python单例模式实例解析
2018/08/28 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
机械电子工程专业推荐信范文
2013/11/20 职场文书
保安自我鉴定范文
2013/12/08 职场文书
公司新年寄语
2014/04/04 职场文书
关于学习的演讲稿
2014/05/10 职场文书
学校募捐倡议书
2014/05/14 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
布达拉宫导游词
2015/02/02 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
Golang连接并操作MySQL
2022/04/14 MySQL