微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使在 XMLHttpRequest (JavaScript/ReactJS) 上切片后上传大文件时浏览器也会崩溃

如何解决即使在 XMLHttpRequest (JavaScript/ReactJS) 上切片后上传大文件时浏览器也会崩溃

一段时间以来,我一直试图找到一个明确的答案,因为有些只适用于例如大型 CSV 文件

以下代码非常适合较小的文件,当文件大小超过 100 MB 时,上传过程显然会占用大量内存。

我也已经将文件切成更小的块,但显然文件的初始读取导致了这个问题。

问题:我应该如何更改以下代码以防止发生崩溃?

{'executed':true/false}

解决方法

这是一种通过切片和读取数据上传文件的糟糕方式。 直接发送文件而不读取内容

const res = await fetch('URL_GOES_HERE',{
  method: 'post',body: file
})
await res.text()

如果您真的需要使用块部分上传它们,那么只需将 blob 切片并上传,而无需发送数组缓冲区

chunk_to_send = file.slice(start,end)
xhr.send(chunk_to_send)

浏览器将能够将数据作为流传输并上传,而无需担心内存问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。