@cainiaofe/cn-utils
Version:
菜鸟前端基础工具库
67 lines (66 loc) • 2.02 kB
JavaScript
;
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;