flask tornado http 文件下载

flask服务,其中cache_timeout为文件在浏览器中设置的缓存时间
from flask import send_file, make_response
@app.route('/file_get', methods=['GET'])
def post_special_identifier():
    resp = make_response(send_file(file_name, add_etags=False, cache_timeout=0))
    file_rsp_name = "test_file_name"
    resp.headers["Content-Disposition"] = 'attachment; filename={}.pdf'.format(file_rsp_name.encode().decode('latin-1'))
    resp.headers['Content-Type'] = 'application/x-pdf'
    return resp
tornado 服务
# -*- coding: utf-8 -*-
import logging
import json
from tornado.gen import coroutine
from server.request_base import BaseHttpHandler
__author__ = 'Ennis'


class GetLog(BaseHttpHandler):
    @coroutine
    def get(self):
        try:
            filename = "server.log"
            self.set_header('Content-Type', 'application/octet-stream')
            self.set_header('Content-Disposition', 'attachment; filename=' + filename)
            # 读取的模式需要根据实际情况进行修改
            with open(filename, 'rb') as f:
                while True:
                    data = f.read(4096)
                    if not data:
                        break
                    self.write(data)
            self.finish()
        except Exception as ex:
            self.set_status(500)
            logging.error("handle outside period ex:%s", ex)
            self.write({"seq": "5", "data": str(ex)})
            self.finish()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值