背景
项目中要临时生成一些图片以供后续流程使用,本地没有问题,线上有点问题,需要添加一个预览的接口
知识储备
Content-disposition
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition
实现
编码
import os
from flask import Flask, Response, jsonify, url_for
app = Flask(__name__)
PORT = 5000
HOST = '127.0.0.1'
DEBUGGER = True
@app.route('/<path:filename>')
def document_preview(filename):
response = Response(
open(rf'files/{filename}', 'rb'))
response.headers['Content-Type'] = '*/*'
response.headers['Content-disposition'] = 'inline;'
response.status = 200
return response
@app.route('/')
def all_document():
res = []
for root, dirs, files in os.walk('files'):
for file in files:
s = url_for('document_preview', filename=file)
res.append(f'http://{HOST}:{PORT}' + s)
return jsonify(res)
效果
pdf及图片都是可以正常预览的,如果不能正常预览,看一下浏览器是否有自动下载插件
完结
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。