python flask 上传下载 api_Flask 文件下载API
給前端提供一個文件下載接口時, 遇到了文件名亂碼的問題, 幾經(jīng)折騰總算實現(xiàn)效果, 代碼如下:
import requests
from flask import Response, jsonify, request, stream_with_context
from flask_login import login_required
from . import bp
from .models import Courseware
@bp.route("/courseware/download")
@login_required
def courseware_download():
"""
課件下載 GET
:param id: 課件id
"""
pk = request.args.get("id", type=int)
obj = Courseware.query.get(pk)
if not obj:
return jsonify(detail=f'Courseware(id={pk}) not found.'), 404
try:
url = f"{obj.domain.rstrip('/')}/{obj.filekey}" # 七牛云文件下載地址
r = requests.get(url, stream=True, timeout=500)
response = Response(
stream_with_context(r.iter_content(chunk_size=1024)),
content_type=r.headers["content-type"],
)
header = f'attachment; filename="{quote(obj.filename.encode())}"'
response.headers["Content-Disposition"] = header
return response
except Exception as e:
print("download file error:", e)
return jsonify(detail=str(e)), 422
總結(jié)
以上是生活随笔為你收集整理的python flask 上传下载 api_Flask 文件下载API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【行业】盘点BAT如何进行技术布阵
- 下一篇: websocket python爬虫_p