4

客户端可以将文件上传到我的 NodeJS 服务器。我想确保客户端不会滥用服务器并上传太大的文件。因此,我想在检测到问题后立即取消请求,同时向客户端返回有意义的状态代码和响应。假设用户上传了一个 100 MB 大的文件,但我的服务器的最大文件大小为 10 MB。

如果我做

req.socket.destroy()

如果在 Java 中,客户端将收到 SocketException,或者在浏览器中取消请求。

有没有更好的方法来发送优雅的响应,同时避免接收整个 100 MB 文件?

4

1 回答 1

0

来自413 请求实体太大

服务器拒绝处理请求,因为请求实体比服务器愿意或能够处理的要大。服务器可以关闭连接以阻止客户端继续请求。

因此,根据协议,您应该首先发送 413 响应,然后关闭连接。

尝试

res.writeHead(413, {'Content-Type': 'text/plain'});
res.end('10mb max.');
于 2013-04-30T22:13:03.193 回答