Flask - send_from_directory返回旧文件

时间:2013-07-28 21:37:24

标签: pdf flask pdftk

当我填写并提交pdf表格时,send_from_directory会返回旧文件。我使用pdftk将fdf推送到pdf并展平,但如果我使用旧文件输出相同的文件名,Flask会显示旧文件。为什么不被新的覆盖?感谢。

2 个答案:

答案 0 :(得分: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))

这些是相关的代码段。谢谢。

答案 1 :(得分:0)

Flask send_from_directory 在内部使用 send_filesend_file 具有缓存超时,您可以将其设置为 0。

尝试清除缓存并在隐身模式下点击 URL。如果它有效,你可以这样做:

 send_from_directory(app.config['UPLOAD_FOLDER'], filename, cache_timeout=0)

或者您可以尝试以下任何选项: Disabling caching in Flask