UNPKG

@cainiaofe/cn-utils

Version:

菜鸟前端基础工具库

67 lines (66 loc) 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.download = void 0; var path_browserify_1 = require("path-browserify"); var type_1 = require("../../common/type"); /** * 下载图片 */ var downloadImg = function (url, _fileName) { var fileName = _fileName || (0, path_browserify_1.basename)(url); var image = new Image(); image.setAttribute('crossOrigin', 'Anonymous'); image.onload = function () { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); canvas.width = image.width; canvas.height = image.height; context === null || context === void 0 ? void 0 : context.drawImage(image, 0, 0, image.width, image.height); var canvasUrl = canvas.toDataURL('images/png'); var a = document.createElement('a'); a.download = fileName; a.href = canvasUrl; a.click(); }; image.onerror = function () { commonDownload(url, _fileName); }; var tempUrl = new URL(url); if (tempUrl.search) { image.src = "".concat(url, "&v=").concat(Date.now()); } else { image.src = "".concat(url, "?v=").concat(Date.now()); } }; /** * 通用下载 */ var commonDownload = function (fileUrl, _fileName) { var fileName = _fileName || (0, path_browserify_1.basename)(fileUrl); var a = document.createElement('a'); a.target = '_blank'; a.href = fileUrl; a.download = fileName; document.body.appendChild(a); a.click(); document.body.removeChild(a); }; /** * 下载文件 * @param fileUrl 下载的文件路径 * @param fileName 重命名下载文件 */ var download = function (fileUrl, fileName) { // 防护代码 if (!fileUrl) return; fileName = fileName || ''; if ((0, type_1.isImage)(fileUrl) || (0, type_1.isImage)(fileName)) { downloadImg(fileUrl, fileName); } else { commonDownload(fileUrl, fileName); } }; exports.download = download;