首页 > 其他分享 >非文件流下载文件设置文件名

非文件流下载文件设置文件名

时间:2022-11-04 10:25:36浏览次数:43  
标签:function 文件 文件名 url URL xhr window var 下载

前端下载如果是文件流的话,就直接使用downloadFile方法进行下载,如果是非文件流,要设置文件名,就要转成文件流的方式,解决通过download设置文件名的兼容问题,代码如下:

 download(url, fileName) {
      function ajax(url, callback, options) {
        window.URL = window.URL || window.webkitURL;
        var xhr = new XMLHttpRequest();
        xhr.open("get", url, true);
        if (options.responseType) {
          xhr.responseType = options.responseType;
        }
        xhr.onreadystatechange = function () {
          if (xhr.readyState === 4 && xhr.status === 200) {
            callback(xhr);
          }
        };
        xhr.send();
      }
      function downloadFile(content, filename) {
        var a = document.createElement("a");
        var blob = new Blob([content]);
        var url = window.URL.createObjectURL(blob);
        a.href = url;
        a.download = fileName;
        a.click();
        window.URL.revokeObjectURL(url);
      }
      ajax(
        url,
        function (xhr) {
          downloadFile(xhr.response, fileName);
        },
        {
          responseType: "blob",
        }
      );
      return false;
    }

 

标签:function,文件,文件名,url,URL,xhr,window,var,下载
From: https://www.cnblogs.com/sakura-lifangfang/p/16856795.html

相关文章

  • Core 获取配置文件
    publicclassTraceUploadService{//实例化配置节点privatereadonlyIConfigurationconfiguration;publicTraceUploadService(IConfigurationco......
  • 文件上传的 2 种方式 - 上传到 腾讯云仓库
    1.前端上传  -第三方云仓库 https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2F注册使用腾讯云步骤;  需要实名认证;  ......
  • 局域网文件共享
      最后安利一波Windows4K高清壁纸,不定期更新,需要的阿里云盘自取:https://www.aliyundrive.com/s/WetZQ2SoE7x ......
  • 纯前端实现后端给数据进行文件导出——angular里面的使用
    interfacedataList{cmd_cnt:number;risk_name:string;user_cnt:number;risk_type:string;}listOfData:dataList[]=[];dataObj:any={title:['风险名称',......
  • cmake-src子文件夹
    方法一main.c#include<stdio.h>#include<stdlib.h>#include"src/add.h"intmain(intargc,char**argv){ add(); exit(EXIT_SUCCESS);}cmakelists.tx......
  • java操作文件
    三种方式publicFile(Stringpathname)--通过指定的路径名字符串创建一个File对象。--若pathname指向的是文件,创建的File对象就表示文件;--若pathname指向的是目录......
  • 如何下载火狐浏览器历史版本
    ​​http://ftp.mozilla.org/pub/firefox/releases/​​​​http://t.zoukankan.com/yczcc-p-9032860.html​​......
  • qt输出自定义的pdf文件源码详解
    qt中有两种方式可以输出pdf:方式1:使用QPrinter即打印机的方式打印pdf这种方式,在qt4成为唯一的方式。QPrinterprinter(QPrinter::HighResolution);//高清晰度printer.set......
  • bootloader_kernel_根文件系统的编译运行
    bootloader_kernel_������������������������������编译运行bootloader_kernel_根文件系统bootloaderPOST:电脑上电首首先自检(POST=PowerOnSelfTest)。然后加载运行bootloader。MBR分区电脑加载bo......
  • 03-分布式文件系统HDFS
    目录​​一,HDFS简介​​​​1,什么是HDFS​​​​2,优缺点​​​​2.1优点​​​​2.2缺点​​​​二,HDFS原理​​​​1,系统架构​​​​1.1角色分工​​​​1.2设计思想......