ajax请求文件流下载

$.ajax({
                        // url:BASEURL+‘/bill/download/invoice‘,
                        url:‘http://loan-test.yinshuitong.com/backorg/bill/download/invoice‘,
                        type:‘get‘,
                        data:{
                            invoiceIdStr:invoiceShell.id
                        },
                        crossDomain: true == !(document.all),
                        beforeSend: function(request) {
                            request.setRequestHeader("Authorization", tokenString);
                        },
                        responseType: ‘blob‘,
                        success:function(result){
                            const excelBlob = result.data
                            if (‘msSaveOrOpenBlob‘ in navigator) {
                                // Microsoft Edge and Microsoft Internet Explorer 10-11
                                window.navigator.msSaveOrOpenBlob(excelBlob, ‘invoice.pdf‘)
                            } else{
                                const elink = document.createElement(‘a‘) // 创建a标签
                                elink.download = ‘invoice.pdf‘
                                elink.style.display = ‘none‘
                                const blob = new Blob([excelBlob])
                                elink.href = URL.createObjectURL(blob)
                                document.body.appendChild(elink)
                                elink.click()
                                document.body.removeChild(elink)
                            }
                        }
                    })

原文地址:https://www.cnblogs.com/SunShineM/p/9084755.html

时间: 2024-11-07 12:58:18

ajax请求文件流下载的相关文章

通过httpClient请求文件流(普通文件和压缩文件)示例

前言:通过浏览器请求文件流进行文件下载这里就不说了,网上有很多例子,这里主要是记录一下工作中的另一个场景,一个服务器通过HTTPClient向另一个服务请求文件流,在内存中进行业务逻辑处理,并不需要下载到本地,当然,如果你想要下载本地也是可以的,把文件流写到本地磁盘就可以了,也可以写到文件系统中.废话不多说. 一,服务器传输的是普通的文件流,没有经过压缩 服务器: @RequestMapping(value = "/getCommonFile", method = RequestMet

ajax请求过程中下载文件在火狐下的兼容问题

项目中碰到的问题,记录如下. 需求很简单,点击一个文件链接下载该文件,同时向后台发送请求.需求很常见,用户点击下载后通常要进行下载量的统计,统计的话可以利用 script标签 或者 img标签(图片ping) 的跨域能力,将它们的 src 属性指向统计地址,但是这次用了 ajax 进行统计,遂出现了这个问题. demo 代码如下: 复制代码<a id="a" href="http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.

原生Javascript使用fetch发起请求_模拟get|post|文件流下载等

有时候,我们无法借助熟悉的jquery发起请求,原生JS里是支持fetch函数的,这是个高度封装的方法,帮助我们做了很多底层的封装,下面列举一些发起请求的示例: 1-发起Get请求: //httpGet请求 var httpGet = async function (getUrl) { var opts = { method: "GET", credentials: 'include' // 强制加入凭据头 } await fetch(getUrl, opts).then((respo

ASP.NET 实现Base64文件流下载PDF

因为业务需要调用接口获取的是 Base64文件流 需要提供给客户下载PDF文档 源码部分借鉴网上,具体地址忘记了. //Base64文件流 byte[] buffer = Convert.FromBase64String(decodedString); System.IO.Stream iStream = new System.IO.MemoryStream(buffer); try { int length; long dataToRead; string filename = sn + ".

使用文件流下载文件,并且修改文件的名字

最近在搞一个项目,里面有一个文件下载的内容,但是万恶的产品提了一个要自定义修改文件名的需求,一开始后台不想改,让前端修改(这简直是不可理喻,最后还是后台改了),不过经过努力,我还是找到了方法去解决. 这里使用的是文件流的方式,就是先把文件从服务器下载下来,前端再通过blob去修改文件名. 代码如下: fetch('/api/fs/download2/internal/' + item.att[0].url).then(res => res.blob().then(blob => { let a

ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践

写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,webclient需要请求 Service 返回的图片文件(二进制流),并在client端显示. 第一步思考:拿到此需求, 基于程序员的狂妄心里,思考到显示图片而已,jquery ajax直接get请求 将返回data 赋值给img标签的src属性即可嘛,so easy~ 不知天高地后的小子开始码代码,经过几分钟给出了以下的代码,并自信满满的准

远程服务器文件流下载方法【实例】

/**  * 远程服务下载类  *  * @author jiyanle.  * @date 2015/6/17  */ @Controller @RequestMapping(value = "download") public class FileDownload extends BaseController {     /**      * 远程服务器文件下载      *      * @param request      * @param response      * @

axios 文件流下载

this.axios .post(this.baseUrl+"/exportUser", { admin: "",keys: "",keyword:this.keyword,},{responseType: 'blob'}) .then(function(response) { var blob = new Blob([response.data]) var downloadElement = document.createElement('a'

asp.net文件流下载的代码摘要

try { var workbook = new XLWorkbook(); if (Workbook != null) { workbook = Workbook; } if (this.ExportData != null || this.Workbook != null) { context.HttpContext.Response.Clear(); // 编码 context.HttpContext.Response.ContentEncoding = Encoding.UTF8; //