在使用flask下載文件時會出現的一個文件下載不到的問題

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 若是系統安裝了這個組件的話:
會替換系統自帶的path功能,致使,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)

 從現象上看,好像是genericpath.py將python本身帶的path這個類重寫了,致使全部對path的操做,都指向了genericpath這個裏面,這個類的處理又和系統自帶的有些不太同樣,因此會致使相同的方法返回值徹底不一樣的狀況,python

好比:os.path.isfile這個方法執行時,一樣的一個文件,會得出不一樣的結果。flask

相關文章
相關標籤/搜索