flaskを使用してファイルをダウンロードするときに発生する1つのファイルがダウンロードできない問題

1100 ワード

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という中を指しています.このクラスの処理はシステムが持っているものとは少し違いますので、同じ方法で値が全く異なる場合を招きます.
例えば:os.path.isfileという方法で実行すると、同じファイルで、異なる結果が得られます.