在使用flask下载文件时会出现的一个文件下载不到的问题
生活随笔
收集整理的這篇文章主要介紹了
在使用flask下载文件时会出现的一个文件下载不到的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
from?flask?import?send_from_directory @app.route('/uploads/<filename>') def?uploaded_file(filename):return?send_from_directory(app.config['UPLOAD_FOLDER'],filename)genericpath.py?如果系統(tǒng)安裝了這個組件的話: 會替換系統(tǒng)自帶的path功能,導(dǎo)致,path失效了。最終會找不到文件。 代碼只有這樣簡短的幾句話而已。就是這個os.path.isfile會有問題。所以,放在uploaded_file中來完成這個動作,就可以了 """ filename?=?safe_join(directory,?filename) if?not?os.path.isfile(filename):raise?NotFound() options.setdefault('conditional',?True) return?send_file(filename,?**options)????????????? 最終的代碼類似于這個樣子: #filename?=?flask.safe_join(UPLOAD_FOLDER,?filename) print(flask.safe_join(UPLOAD_FOLDERS,secure_filename(filename))) print(os.path.isfile(filename)) return?flask.send_file(flask.safe_join(UPLOAD_FOLDERS,secure_filename(filename)),as_attachment=True)?從現(xiàn)象上看,好像是genericpath.py將python自己帶的path這個類重寫了,導(dǎo)致所有對path的操作,都指向了genericpath這個里面,這個類的處理又和系統(tǒng)自帶的有些不太一樣,所以會導(dǎo)致相同的方法返回值完全不同的情況,
比如:os.path.isfile這個方法執(zhí)行時,同樣的一個文件,會得出不同的結(jié)果。
轉(zhuǎn)載于:https://my.oschina.net/u/1462124/blog/521300
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的在使用flask下载文件时会出现的一个文件下载不到的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日期DatePicker与时间TimeP
- 下一篇: U3D 通过预置对象实现手动创建精灵