前端如何下载一个url

分类: 365bet游戏 时间: 2025-07-23 10:52:43 作者: admin

async function downloadLargeFile(url, filename) {

const response = await fetch(url);

const reader = response.body.getReader();

const stream = new ReadableStream({

start(controller) {

function push() {

reader.read().then(({ done, value }) => {

if (done) {

controller.close();

return;

}

controller.enqueue(value);

push();

});

}

push();

}

});

const newResponse = new Response(stream);

const blob = await newResponse.blob();

const downloadUrl = window.URL.createObjectURL(blob);

const a = document.createElement('a');

a.style.display = 'none';

a.href = downloadUrl;

a.download = filename;

document.body.appendChild(a);

a.click();

window.URL.revokeObjectURL(downloadUrl);

}