后台二进制文件 在前台下载方法总结
总结下实际开发过程中使用过的文件下载方法: 刚开始接触$.ajax()时 欣喜若狂,以为所有的异步交互都可以用它来操作,直到流文件。具体的场景是: 后台操作文件 ,以二进制流的形式,返回到前台(我实际的场景是导出Excel文件) context.Response.BinaryWrite(二进制数组); 首先想到的是通过$.ajax来进行操作,因为和后台交互的参数很多,它的参数形式可以用键值对对象的形式,很方便, 但是怎么操作都不行,不报错,但是文件就是不能下载,又想到设置dataType的形式,发现没文件流的形式,心中 一万个……. 废话少说,总结方法: (1)通过a标签的形式,应该可以满足大多的需求。 就是通过设置href属性,点击a标签,就可以下载成功。PS:a的html5中download的属性,可以直接重命名文件。 固定的:<br><a download="data.xls" href="file.ashx?paramone=canshuyi"> </a><br>动态的: <button type="button" onclick="download()">导出</button> function download() { var a = document.createElement('a'); var url = 'download/?filename=aaa.txt';