ajax方式下载文件

<button type="button"  onclick="download()">导出</button>

function download() {

   var url = ‘download/?filename=aaa.txt‘;

   var xhr = new XMLHttpRequest();

   xhr.open(‘GET‘, url, true);        // 也可以使用POST方式,根据接口

   xhr.responseType = "blob";    // 返回类型blob

   // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑

   xhr.onload = function () {

       // 请求完成

       if (this.status === 200) {

           // 返回200

           var blob = this.response;

           var reader = new FileReader();

           reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href

           reader.onload = function (e) {

               // 转换完成,创建一个a标签用于下载

               var a = document.createElement(‘a‘);

               a.download = ‘data.xlsx‘;

               a.href = e.target.result;

               $("body").append(a);    // 修复firefox中无法触发click

               a.click();

               $(a).remove();

           }

       }

   };

   // 发送ajax请求

   xhr.send()

}

原文链接:https://my.oschina.net/watcher/blog/1525962

原文地址:https://www.cnblogs.com/zyl-Tara/p/9329127.html

时间: 2024-08-02 10:33:02

ajax方式下载文件的相关文章

C# Http方式下载文件到本地

下文代码是从网络(http://www.cnblogs.com/hayden/archive/2012/04/26/2472815.html)得来,亲测好用.我中修改了下格式和注释,版权属于原作者. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Net; namespace ConsoleTest { class

文件流的方式下载文件

//流方式下载 protected void Button4_Click(object sender, EventArgs e) { string fileName = "aaa.zip";//客户端保存的文件名 string filePath = Server.MapPath("DownLoad/aaa.zip");//路径 //以字符流的形式下载文件 FileStream fs = new FileStream(filePath, FileMode.Open);

asp.net已流的方式下载文件

string filePath = context.Server.MapPath("~/" + uploadFolder+"/"+file_name);//路径 System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); if (fileInfo.Exists == true) { //以字符流的形式下载文件 FileStream fs = new FileStream(filePath, File

java通过http方式下载文件

package com.qiyi; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; import java.io

以流的方式下载文件

封装的axios下载 // 下载数据 export const downloadFile = (id) => { return axios.request({ url: '/file-manage/file/download/' + id, method: 'get', responseType: 'blob' }) } 传入下载的文件名,对应的文件id来下载流格式的文件 // 下载文件 downloadFile (filename, id) { downloadFile(id).then(re

使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传

Anthem.NET刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与安装 Anthem.NET可以在此下载:http://sourceforge.net/project/showfiles.php?group_id=151897&package_id=168043&release_id=493609 下载之后解压缩至硬盘中的某一目录中,编译项目得到Anthem.dll.然后将其拷贝到We

重载Python FTP_TLS 实现Implicit FTP Over TLS方式下载文件

对于Python2.7来说,内置的FTP_TLS类并不支持Implicit FTP Over TLS加密方式的FTP Server操作,为支持Implicit FTP Over TLS加密方式,必须重载内置的FTP_TLS类,具体代码如下: import ftplib class FTP_TLS(ftplib.FTP_TLS): def __init__(self, host='', user='', passwd='', acct='', keyfile=None, certfile=None

ajax异步下载文件

ajax不支持异步下载,但我想你是不想让地址栏发生跳转,如果是这样的话,我到是有几种方法.这几种方法的原理都是一样的,就是发送同步请求,当同步请求下载东西是并不会改变url <a href="你要下载的资源的url">下载</a> document.href="你要下载的资源的url" var form = $("<form action='你要下载的资源的url' method='post'></form>

关于ajax的下载文件被浏览器阻止的问题

在开发中遇到了这样一个问题: 使用jquery的ajax功能,在回调函数中进行下载的调用时浏览器会在顶部出现一条黄色背景的提示信息,大体意思就是说是否下载,存在风险之类的. 解决方案: 1.不要在回调函数中进行下载,通过手动触发下载请求,可解决 2.浏览器的安全设置里自己设置(不推荐)