通过AJAX返回ZIP文件



我需要下载文件,这是通过AJAX触发的。我的代码从临时文件夹中的URL中检索图像,并在此临时文件夹中创建文件的内存zip。我想将文件路径推送到客户端。我该怎么做?

这是我的邮政编码:

#This function creates a temp folder, downloads images in it and returns the path
temp_dir = retrieve_images(file_paths)
in_memory_loc = io.BytesIO()
zipf = zipfile.ZipFile(, 'w')
zipdir(temp_dir, zipf)
zipf.close()
#remove the temp directory
shutil.rmtree(temp_dir)
in_memory_loc.seek(0)
#output the zip file to the browser
return send_file(in_memory_loc, attachment_filename='site_images.zip', as_attachment=False)

当我使用传统的表单提交方式时,这是有效的。但是我需要通过AJAX返回这个。通过AJAX返回文件似乎是不可能的,因此我想返回zip文件路径。我该怎么做?

创建该资源的url并将其发送回ajax,使用window.open('url')触发下载;在成功功能中

您有临时目录的名称和文件的名称,所有这些都是构建url 所需的

您不能用XHR响应提示文件下载,因此服务器必须保留zip文件的内容,并等待客户端发出第二个HTTP请求来执行下载。

一种方法是将内容存储在随机生成的密钥下的memcache中,并返回带有XHR响应的密钥。然后,客户端可以在非XHR请求中将该密钥传递回服务器以请求该文件。

(不带ajax)
您可以使用Jquery点击功能中的窗口位置下载zip文件。。。。。。

 $(this).ready(function() {
        $("#downloadBtn").click(function() {
            var formdata= $("#formId").serialize();
            window.location="download.action?"+formdata;
        });
    });

相关内容

  • 没有找到相关文章

最新更新