如何使用Javascript客户端和Python/GridFS后端正确下载文件

2024-05-19 13:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在AngularJS前端构建一个webapp,带有Python Flask后端和MongoDB/GridFS数据库

我想让客户端在浏览器中下载一个文件,就像在直接下载网站上一样。 文件保存在gridFS中

代码如下:

后端路由:

@router.route('/getOrgaUploadedDocument/<doc_id>/<doc_name>', methods=['GET'])
@requires_auth
def getOrgaUploadedDocument(user, doc_id, doc_name):
    ret = base_orga.getOrgaUploadedDocument(user, doc_id)
    return ret

后端处理(基本组织对象):

def getOrgaUploadedDocument(user, doc_id):
    gfile = db_filesystem.get(objectid.ObjectId(doc_id))
    return Response(gfile, mimetype=gfile.doc_type, direct_passthrough=True)

前端:

ctrl.downloadDoc = function (doc_id, doc_name) {
$http.get('/getOrgaUploadedDocument/' + doc_id + "/" + doc_name ).then(function(response) {
    console.log(response);
});

}

显然,我在控制台中得到了文件的原始字节

但我找不到一种方法来制定请求,以触发浏览器中的文件下载

谢谢


Tags: 文件nameidgetdocreturnresponsedef