前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django+ajax用FileResp

django+ajax用FileResp

作者头像
py3study
发布2020-01-19 16:49:40
8440
发布2020-01-19 16:49:40
举报
文章被收录于专栏:python3python3

问题:

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

解决办法:

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

——代码——

django下载文件到浏览器:

代码语言:javascript
复制
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请求:

代码语言:javascript
复制
<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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档