欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

js 下载文件的三种方式

最编程 2024-07-17 15:57:08
...
/** * 二进制文件流下载 * @param {BlobPart} data 文件流 * @param {string} fileName 下载文件名 */ export function downloadBlob(data, fileName) { const blob = new Blob([data]); const link = document.createElement('a'); link.download = fileName; link.style.display = 'none'; link.href = URL.createObjectURL(blob); link.click(); URL.revokeObjectURL(link.href); document.body.removeChild(link); } /** * 文件url下载 * @param {string} url 文件地址 * @param {string} fileName 下载文件名 */ export function downloadUrl(url, fileName) { const link = document.createElement('a'); link.style.display = 'none'; link.download = fileName; link.href = url; link.click(); document.body.removeChild(link); } /** * post方式下载文件 * @param {string} url 请求地址 * @param {object} params 请求参数对象 * @param {string} [method=post] 请求类型 */ export function downloadPost(url, params = {}, method = 'post') { const form = document.createElement('form'); form.style.display = 'none'; form.action = url; form.method = method; form.target = '_blank'; Object.keys(params).forEach(name => { const input = document.createElement('input'); input.type = 'hidden'; input.name = name; input.value = params[name]; form.appendChild(input); }); document.body.appendChild(form); form.submit(); document.body.removeChild(form); }