Javascript 下载不';使用代码206部分内容时不起作用

Javascript 下载不';使用代码206部分内容时不起作用,javascript,node.js,typescript,Javascript,Node.js,Typescript,我有一个强制在浏览器中下载文件的功能,它对小文件有效,但对大文件似乎不起作用。当下载开始时,我得到了失败-没有文件,我将其缩小到以下原因:我正在设置206状态代码(部分内容)。这过去工作正常,但现在我收到了无文件的消息 将其更改为状态代码200时,文件将被下载。将状态代码保持为206并删除内容配置时,文件将在浏览器中播放 下载大文件时是否需要206 导出类服务器{ 专用静态异步发送(客户端:客户端,请求:http.IncomingMessage,res:http.ServerResponse)

我有一个强制在浏览器中下载文件的功能,它对小文件有效,但对大文件似乎不起作用。当下载开始时,我得到了失败-没有文件,我将其缩小到以下原因:我正在设置
206
状态代码(部分内容)。这过去工作正常,但现在我收到了无文件的消息

将其更改为状态代码
200
时,文件将被下载。将状态代码保持为
206
并删除
内容配置时,文件将在浏览器中播放

下载大文件时是否需要
206

导出类服务器{
专用静态异步发送(客户端:客户端,请求:http.IncomingMessage,res:http.ServerResponse){
让fileSize=client.response.contentLength
让start=0,end=fileSize-1(this.app.chunkSize | | 5e5)){
让range=(req.headers.range | |“”)作为字符串
让positions=range.replace(/bytes=/,“”).trim().split(“-”)
start=parseInt(位置[0]| |“0”,10)
end=parseInt(位置[1]| |(文件大小-1).toString(),10)
让chunkSize=(结束-开始)+1
//在这里将代码设置为206会中断
client.response.setCode(206)
.setHeaders({
'内容范围':`bytes${start}-${end}/${fileSize}`,
“接受范围”:“字节”,
“连接”:“保持活动状态”,
“内容长度”:chunkSize
})
}
res.writeHead(client.response.code


仅当浏览器明确请求时发送
206
,否则发送
200

if(!!请求标头范围){
//当且仅当客户端在请求中向我们发送范围http读取器时,
//执行您的逻辑,发送206
}否则{
//忘记这里的部分内容,
//使用200直接将文件管道传输到res
}

您是否在每个浏览器上都有相同的结果?如果没有,哪些浏览器会失败?另外一个可能是获取请求和响应的完整快照,以检查exchange中的一切是否正常!Chrome没有显示任何文件,也没有保存任何内容。Firefox会将一个空文件下载到我的
downloads
文件夹中。我不确定您的所有代码都在做什么ng,但将文件流式传输到响应…我的代码将文件分块发送到浏览器,这是
如果执行的操作(获取文件中的起点和终点)。如果不执行此操作,则大文件将不会流式传输/完全发送到浏览器。