Моя функция, содержащая send_file (), похоже, не обновляется - PullRequest
0 голосов
/ 09 апреля 2019

Я использую приложение Flask для обновления некоторых файлов PDF, преобразования их в файл Excel и отправки этого файла обратно пользователю. Я использую папку экземпляра для хранения файлов PDF и Excel.

Но когда пользователь нажимает кнопку «Загрузить» для загрузки сгенерированного файла Excel, загружается старый файл (из более старого сеанса).

Кроме того, когда я пытаюсь изменить свой код, например, я изменил имя этого файла Excel: я вижу новое имя в папке экземпляра, но когда я загружаю файл с помощью веб-приложения, он все еще остается старое имя (и старый файл). Я понятия не имею, где веб-приложение ищет этот старый файл ...

MEDIA_FOLDER = '/media/htmlfi/'
app = Flask(__name__)
app.config.from_object(Config)
INSTANCE_FOLDER = app.instance_path

app.config['UPLOAD_FOLDER'] = INSTANCE_FOLDER+MEDIA_FOLDER
@app.route('/file/')
def send():
    folder = app.config['UPLOAD_FOLDER']
    try:
        return send_file(folder+ "file.xlsx", as_attachment=True)
    finally:
        os.remove(folder+ "file.xlsx")
<a href="{{ url_for('send') }}"  ><button class='btn btn-default'>DOWNLOAD</button></a>

Я действительно новичок в webapp в целом, спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 09 апреля 2019

send_file принимает параметр cache_timeout, который представляет собой количество секунд, которое вы хотите кэшировать загрузку. По умолчанию 12 часов.

return send_file(
    file.file_path(),
    as_attachment=True,
    cache_timeout=app.config['FILE_DOWNLOAD_CACHE_TIMEOUT'],
    attachment_filename=file.file_name
)

http://flask.pocoo.org/docs/1.0/api/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...