jquery和vue环境中下载的实现

标签(空格分隔): js


先试试这个方法(支持低版本chrome浏览器,高版本不行)

/**
 * 
 * @param {*} path src路径 imgName 图片名称
 */
function downloadImage(path,imgName) {
    var $a = $("<a></a>").attr("href", _OBJECT_URL).attr("download", imgName);
    $a[0].click();
}

如果上述方法不行,试试这个

基础
1)nginx 要配置反向代理

    location /data {
            proxy_pass   http://172.160.230.168:8086/data;//服务器地址
        }

2)path 路径为 本地回环地址
eg:http://127.0.0.1:8888/data/evpl/20190123/dfa111b0945d4916b04e2845e749a1bc/image/88c21a4543d74a2987c240b78011696c/Hydrangeas.jpg

/**
 * 
 * @param {*} path src本地回环地址 imgName 图片名称
 */
function downloadImage(path,imgName) {
    var _OBJECT_URL;
    var request = new XMLHttpRequest();
    request.addEventListener('readystatechange', function (e) {
        if (request.readyState == 4) {
            _OBJECT_URL = URL.createObjectURL(request.response);
            var $a = $("<a></a>").attr("href", _OBJECT_URL).attr("download", imgName);
            $a[0].click();
        }
    });
    request.responseType = 'blob';
    request.open('get', path);
    request.send();
}

在vue环境中

dealFilebolb (content, fileName) {
      const blob = new Blob([content]);
      if ('download' in document.createElement('a')) { // 非IE下载
        const elink = document.createElement('a');
        elink.download = fileName;
        elink.style.display = 'none';
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        URL.revokeObjectURL(elink.href);// 释放URL 对象
        document.body.removeChild(elink);
      } else { // IE10+下载
        navigator.msSaveBlob(blob, fileName);
      }
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容