解決python 上傳圖片限制格式問題
終于忙完有空更新了,這次說下一個(gè)比較簡(jiǎn)單的東西,限制上傳圖片格式問題。
先上代碼!
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
以前項(xiàng)目里總是再用file_postfix = img_file.name.split('.')[1]
這種方法再取文件后綴進(jìn)行判斷格式,這種方法對(duì)普通的文件名還是沒問題的例如:圖片1.jpg、圖片2.jpg、圖片3.jpg。但是遇到www.圖片1.jpg這種的圖片名稱就會(huì)爆炸,因?yàn)閳D片名稱中存在兩個(gè).
suffix = img_file.name.rfind('.')
而str的rfind方法就可以避免這種問題,因?yàn)檫@是反響尋找。舉個(gè)例子
a = '123456' print('下標(biāo)', a.rfind('5'))
輸出結(jié)果:下標(biāo) 4
a = '123456' print('下標(biāo)', a.rfind('7'))
輸出結(jié)果: 下標(biāo) -1
rfind方法從字符串最后以為開始找,找到返回下標(biāo),找不到返回-1。
所以 www.test.jpg 這種格式的圖片他會(huì)從最后位置開始找.找到之后在截取就只剩jpg了,也就好判斷了。
要注意的是rfind的下標(biāo)是從0開始的,所以截取的時(shí)候記得加1。
行了 其他的基本沒啥了。這篇文章就到這吧,最近會(huì)更新上傳圖片到微信服務(wù)器。
總結(jié)
以上所述是小編給大家介紹的解決python 上傳圖片限制格式問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python Flask框架實(shí)現(xiàn)簡(jiǎn)單加法工具過程解析
這篇文章主要介紹了Python Flask框架實(shí)現(xiàn)簡(jiǎn)單加法工具過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python基本結(jié)構(gòu)之判斷語句的用法詳解
在程序的設(shè)計(jì)當(dāng)中,代碼并不是逐步按照順序進(jìn)行執(zhí)行的,在運(yùn)行到某一行代碼當(dāng)中,需要停下進(jìn)行判斷接下來將要運(yùn)行到那一個(gè)分支代碼,這種判斷就代表的是分支結(jié)構(gòu)。分支結(jié)構(gòu)是可以使用?if?語句來進(jìn)行判斷的,而我們本篇博客講的也是?if?語句,需要的可以了解一下2022-07-07利用pycharm調(diào)試ssh遠(yuǎn)程程序并實(shí)時(shí)同步文件的操作方法
這篇文章主要介紹了利用pycharm調(diào)試ssh遠(yuǎn)程程序并實(shí)時(shí)同步文件的操作方法,本篇文章提供了利用pycharm遠(yuǎn)程調(diào)試程序的方法,且使用的編譯器可以是服務(wù)器中的虛擬環(huán)境的編譯器,可以實(shí)時(shí)同步本地與服務(wù)器的文件內(nèi)容,需要的朋友可以參考下2022-11-11Python手拉手教你爬取貝殼房源數(shù)據(jù)的實(shí)戰(zhàn)教程
隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容,了解python爬蟲,本文給大家分享Python爬取貝殼房源數(shù)據(jù)的實(shí)戰(zhàn)教程,感興趣的朋友一起學(xué)習(xí)吧2021-05-05python實(shí)現(xiàn)向ppt文件里插入新幻燈片頁面的方法
這篇文章主要介紹了python實(shí)現(xiàn)向ppt文件里插入新幻燈片頁面的方法,涉及Python操作ppt文檔添加幻燈片的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04Python的scikit-image模塊實(shí)例講解
在本篇文章里小編給大家整理了一篇關(guān)于Python的scikit-image模塊實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12