Flask生成的PDF可以查看,但无法下载
我最近开始学习flask,并创建了一个简单的webapp,它可以根据用户输入随机生成PDF格式的儿童数学工作表 PDF将在浏览器中自动打开并可以查看。但是,当我尝试在PC和Chrome iOS上下载时,会收到错误消息(Chrome PC:Failed-Network error/Chrome iOS:此时无法下载该文件) 您可以在这里试用:Flask生成的PDF可以查看,但无法下载,flask,pythonanywhere,Flask,Pythonanywhere,我最近开始学习flask,并创建了一个简单的webapp,它可以根据用户输入随机生成PDF格式的儿童数学工作表 PDF将在浏览器中自动打开并可以查看。但是,当我尝试在PC和Chrome iOS上下载时,会收到错误消息(Chrome PC:Failed-Network error/Chrome iOS:此时无法下载该文件) 您可以在这里试用:kidsmathsheets.com 我怀疑这与我生成和返回PDF文件的方式有关。仅供参考,我正在使用ReportLab生成PDF。下面是我的代码(托管在Py
kidsmathsheets.com
我怀疑这与我生成和返回PDF文件的方式有关。仅供参考,我正在使用ReportLab生成PDF。下面是我的代码(托管在Pythonywhere上):
知道是什么导致了这个问题吗?非常感谢您的帮助 您尝试过使用吗?是的,我尝试过发送_file()并收到相同的错误消息…我相信这可能与Chrome安全设置有关:。我在Firefox中尝试了PDF下载,效果不错,但在Chrome(linux)中同样失败了。谢谢Glenn。我有一台windows计算机,它在Microsoft Edge上也出现故障。因此,我认为我交付PDF的方式有问题,这导致了此类错误。通常情况下,如果PDF可以显示,下载应该是直接的…现在Edge不是基于Chrome吗?
from reportlab.lib.pagesizes import A4, letter
from reportlab.pdfgen import canvas
from reportlab.platypus import Table
from flask import Flask, render_template, request, Response
import io
from werkzeug import FileWrapper
# Other code to take in input and generate data
filename=io.BytesIO()
if letter_size:
c = canvas.Canvas(filename, pagesize=letter)
else:
c = canvas.Canvas(filename, pagesize=A4)
pdf_all(c, p_set, answer=answers, letter=letter_size)
c.save()
filename.seek(0)
wrapped_file = FileWrapper(filename)
return Response(wrapped_file, mimetype="application/pdf", direct_passthrough=True)
else:
return render_template('index.html')