Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有办法强制将文件流式传输给用户';谁的电脑?_Javascript_Node.js_Download - Fatal编程技术网

Javascript 是否有办法强制将文件流式传输给用户';谁的电脑?

Javascript 是否有办法强制将文件流式传输给用户';谁的电脑?,javascript,node.js,download,Javascript,Node.js,Download,我可以执行以下操作将CSV文件强制下载到客户端: const response = await fetch(<url>, <options>); const text = await response.text(); const blob = new Blob([text], { type: 'text/plain' }); const url = URL.createObjectURL(blob); const anchor = document.createElem

我可以执行以下操作将CSV文件强制下载到客户端:

const response = await fetch(<url>, <options>);
const text = await response.text();
const blob = new Blob([text], { type: 'text/plain' });
const url = URL.createObjectURL(blob);

const anchor = document.createElement('a');
anchor.download = fileName;
anchor.href = url;
anchor.style.display = 'none';

document.body.appendChild(anchor);

anchor.click();
anchor.remove();

URL.revokeObjectURL(url);
const response=wait fetch(,);
const text=等待响应。text();
constblob=newblob([text],{type:'text/plain'});
const url=url.createObjectURL(blob);
const-anchor=document.createElement('a');
anchor.download=文件名;
anchor.href=url;
anchor.style.display='none';
document.body.appendChild(锚定);
anchor.click();
锚定。移除();
revokeObjectURL(URL);
这适用于中等大小的文件,但显然是在写入磁盘之前将所有内容下载到内存中。如果文件大于客户机上的可用内存量,这肯定会阻塞。有没有更好的方法可以将
response.body
直接通过管道传输到用户的文件系统

编辑


明确地说,我的目标是允许下载非常大的文件,并尽可能高效地下载所有文件。

我认为有“fs”可以读写文件系统,如果正确的用户发送请求,只需写?@Alex-fs包只在服务器上工作。上面的代码是下载到客户端的。嗯,在客户端文件系统中写入不应该allowed@Alex-写入客户端选择的下载文件夹不是问题。他们会允许你访问你的网站。您可以使用上面的代码触发下载。我只想将其流式传输,而不是先将其保存在内存中。我认为有“fs”可以读写文件系统,如果正确的用户发送了请求,只需写?@Alex-fs包只在服务器上工作。上面的代码是下载到客户端的。嗯,在客户端文件系统中写入不应该allowed@Alex-写入客户端选择的下载文件夹不是问题。他们会允许你访问你的网站。您可以使用上面的代码触发下载。我只想将其流式传输,而不是先将其保存在内存中。