首页 > 解决方案 > NodeJs - 文件上传超出范围异常

问题描述

我正在使用 NodeJs 创建一个 WebApp,目的是在服务器上上传文件。

我正在使用Express-FileUpload,使用 js-FormData() 从客户端向 API (NodeJS) 发送文件,然后处理文件。一切都很好,除非我选择了超过特定大小的文件,例如 2.15 GB 文件。我收到此错误消息:

internal/validators.js:90 throw new ERR_OUT_OF_RANGE(name, >= ${min} && <= ${max}, value); ^

RangeError [ERR_OUT_OF_RANGE]:“长度”的值超出范围。它必须 >= 0 && <= 2147483647。在 getBuffer (D:\FileSharing_System\node_modules\express-fileupload\lib\memHandler.js:17:34) 的 Function.concat (buffer.js:559:5) 处收到 2305039912在 FileStream 完成 (D:\FileSharing_System\node_modules\express-fileupload\lib\memHandler.js:37:14)。(D:\FileSharing_System\node_modules\express-fileupload\lib\processMultipart.js:104:17) 在 fileStream.emit (events.js:322:22) 在 endReadableNT (_stream_readable.js:1187:12) 在 processTicksAndRejections (internal /process/task_queues.js:84:21) { 代码:'ERR_OUT_OF_RANGE' }

我在 64 位 Windows 操作系统上使用 64 位 NodeJ。有什么办法可以处理这种异常,有什么想法吗?

标签: javascriptnode.js

解决方案


我意识到当你不在 Express-File-Upload 上使用临时文件时,二进制缓冲区是在内存上创建的。我尝试使用快速文件上传配置属性:

app.use(fileUpload({
    useTempFiles: true,
    tempFileDir: "/tmp/"
}));

现在,错误没有出现。


推荐阅读