zoukankan      html  css  js  c++  java
  • 纯js实现文件下载并重命名功能

    直接记录代码:

    /**
     * 获取 blob
     * @param  {String} url 目标文件地址
     * @return {cb} 
     */
    function getBlob(url,cb) {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', url, true);
            xhr.responseType = 'blob';
            xhr.onload = function() {
                    if (xhr.status === 200) {
                        cb(xhr.response);
                    }
            };
            xhr.send();
    }
    
    /**
     * 保存
     * @param  {Blob} blob     
     * @param  {String} filename 想要保存的文件名称
     */
    function saveAs(blob, filename) {
        if (window.navigator.msSaveOrOpenBlob) {
                navigator.msSaveBlob(blob, filename);
        } else {
                var link = document.createElement('a');
                var body = document.querySelector('body');
    
                link.href = window.URL.createObjectURL(blob);
                link.download = filename;
    
                // fix Firefox
                link.style.display = 'none';
                body.appendChild(link);
                
                link.click();
                body.removeChild(link);
    
                window.URL.revokeObjectURL(link.href);
        };
    }
    
    /**
     * 下载
     * @param  {String} url 目标文件地址
     * @param  {String} filename 想要保存的文件名称
     */
    function download(url, filename) {
        getBlob(url, function(blob) {
            saveAs(blob, filename);
        });
    };
  • 相关阅读:
    精简shell基础
    Centos7.4下安装Jumpserver 1.0.0(支持windows组件)
    二.Flask 学习模板
    一、Flask路由介绍
    web爬虫,BeautifulSoup
    web爬虫,requests请求
    django之Form组件补充
    中间件和Django缓存
    django之Form组件
    django from表单验证
  • 原文地址:https://www.cnblogs.com/vipzhou/p/10700130.html
Copyright © 2011-2022 走看看