Python Flask 用户端文件如何下载

在做一个小项目,现在已经实现的是:使用flask发布服务后,用户访问某个url会在我本地生成一个pdf文件。
问题是:如何使此pdf文件发送到用户处?
大概思路是什么?

阅读 8.6k
3 个回答

已经解决了,使用flask的send_from_directory方法

我的思路如下:
首先,在服务器端的 static 文件夹下,也就是静态文件目录下,生成 PDF 文件,哪怕是临时文件也行。
第二步,使用 url_for('static', filename='pdf文件名')来发布,一般情况下,制作一个 download 按钮即可:

<a class="btn btn-primary" href="url_for('static', filename='pdf文件名')">PDF文件下载</a>

后话,这样的方式,我没有亲自测试,因为是涉及到PDF文件,会涉及到如下情况:

有可能不是下载pdf文件,而是直接用浏览器打开PDF文件,这样你得需要点击下载按钮,才能下载。

图片描述

出现这样的情况,主要是因为当前的主流浏览器,比如chrome或firefox本身都集成了pdf在线版阅读器,比如如图所示的pdf.js就是firefox本身所集成的。

需要前后端配合。

在做一个小项目,现在已经实现的是:使用flask发布服务后,用户访问某个url会在我本地生成一个pdf文件。

“某个 URL”在本地生成 PDF 之后,返回一个 json ,里面有这个 PDF 文件的地址。
前端的这个请求,获取 json 响应后,直接重定向到这个 PDF 的地址即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题