zoukankan      html  css  js  c++  java
  • django+ajax用FileResponse文件下载到浏览器过程中遇到的问题

    问题:

      公司的需求是从mongodb中查找数据并下载回本地,但是在将文件从mongodb通过django服务端,然后从django服务端向浏览器下载文件。但是在下载的时候出了些问题。由于是用的ajax请求,异步的,所以在将文件返回到前端的时候,前端的script标签中的success回调函数中有数据,且是string类型。

    解决办法:

      在回调函数中设置重定向到文件所在的url

    ——代码——

    django下载文件到浏览器:

    from django.http import FileResponse
    def filedownload(request,filepath):
        file = open(filepath, 'rb')
        response = FileResponse(file)
        response['Content-Type'] = 'application/octet-stream'
        response['Content-Disposition'] = 'attachment;filename="example.tar.gz"'
        return response

    前端script标签中的ajax请求:

    <script>
    
            $(".sub").on("click", function () {
                $.ajax({
                    url: "/download",
                    type: "post",
                    data: {
                        id1: $("#id1").val(),
                        id2: $("#id2").val(),
                        start_date: $("#start_date").val(),
                        end_date: $("#end_date").val(),
                    },
                    success: function (data) {
                            var path = data.path;
                            location.href = path # 重定向到文件所在的路径
                    }
    
                })
    
            });
        </script>

  • 相关阅读:
    响应式注意要添加“视口”约束标记---viewport
    js检测浏览器屏幕宽度
    Fragment中退出报错异常
    ListView和Gridview与滚动冲突解决
    APK反编译
    走出来,就要扛住
    与设备无法进行调试怎么走
    OC基础-protocol
    OC基础-变量可见对与方法
    OC基础-面向对象编程简介
  • 原文地址:https://www.cnblogs.com/kakawith/p/9628941.html
Copyright © 2011-2022 走看看