当我填写并提交 pdf 表单时,send_from_directory 返回旧文件。我使用 pdftk 将 fdf 推送到 pdf 并展平,但如果我提供与旧文件相同的文件名,Flask 会显示旧文件。为什么不被新的覆盖?谢谢。
问问题
678 次
2 回答
0
@app.route('/uploads/<filename>')
def show_pdf_form(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
@app.route('/get_data_as_fdf', methods = ['GET', 'POST'])
def get_pdf_data_as_fdf():
# create fdf file
fdf_string = request.data
fdf_file = open(os.path.join(app.config['UPLOAD_FOLDER'], "data.fdf"), "w")
fdf_file.write(fdf_string)
fdf_file.close()
# merge fdf to pdf and flatten pdf
call(["pdftk", "./uploads/send_data_as_fdf.pdf", "fill_form",
"./uploads/data.fdf", "output", "output.pdf", "flatten"])
return redirect(url_for('show_pdf_form', filename = filename))
这些是相关的代码片段。谢谢你。
于 2013-07-30T07:51:50.260 回答
0
Flask内部send_from_directory
使用send_file
。send_file
具有缓存超时,您可以将其设置为 0。
尝试清除缓存并在隐身模式下点击 URL。如果它有效,你可以这样做:
send_from_directory(app.config['UPLOAD_FOLDER'], filename, cache_timeout=0)
或者您可以尝试中提到的任何选项: 在 Flask 中禁用缓存
于 2021-02-26T13:42:00.990 回答