示例#1
0
def download_file():
    try:
        url = request.args.get('url')
        filename = os.path.basename(url)
        req_ranges = request.headers.get('Range')
        file_obj = requests.get(url,
                                stream=True,
                                headers={'Range': req_ranges})
        headers = file_obj.headers

        s = Response(generate(file_obj),
                     content_type=headers.get('Content-Type'))

        for k, v in headers.items():
            s.headers[k] = v
        s.headers['Content-Disposition'] = "attachment; filename={}".format(
            filename)
        return s

    except Exception as e:
        if file_obj is not None:
            file_obj.close()
        Response.close()
        abort(404)