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

时间:2017-02-19 15:33:47

标签: javascript python angularjs mongodb gridfs

我正在使用Python Flask后端和MongoDB / GridFS数据库在AngularJS前端构建一个webapp。

我想让客户端在浏览器中下载文件,例如直接下载网站。 该文件保存在gridFS

以下是代码:

后端路由:

let query = {
    sql:`SELECT id, name, description FROM articles WHERE lang = '` + req.swagger.params.lang.value + `' AND tags ARRAY['` + req.swagger.params.tag.value + `']::varchar[]`
  };

后端处理(base_orga对象):

@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)

}

所以我明显地在控制台中得到了我文件的原始字节。

但是我无法找到一种方法来制定在浏览器中触发文件下载的请求。

感谢。

0 个答案:

没有答案