我后端使用的是token进行状态管理,想实现用户登录后下载文件(类似网盘的功能) 。
目前文件返回使用的是 send_from_directory
函数,前端能用过ajax获取,但不知道怎么才能实现类似点击a标签后下载到本机的效果。希望各位大大帮忙看看这个问题
代码如下:
# 省略众多导包
from flask_restful import Api, Resource
cloud_bp = Blueprint('cloud', __name__)
api = Api(cloud_bp)
class DownloadFileView(Resource):
decorators = [auth.login_required]
def get(self, path):
try:
file = DownloadFile(g.username, path)
file_path, filename = file.get_file()
# return send_from_directory(file_path, filename)
return send_from_directory(file_path, filename, as_attachment=True)
except ValueError as e:
current_app.logger.info(e)
return make_res(code=-1, message=str(e))
except Exception as e:
current_app.logger.error(e)
return make_res(code=-1, message=str(e))
api.add_resource(DownloadFileView, "/download/<path:path>")