如何做到在文件上传前就进行大小检测?
发布于 9个月前 作者 lmk123 468 次浏览

例如我想做一个文件上传的接口,这个接口限制文件上传大小不能超过1字节(这里只是举例说明才设这么小),Express代码如下:

app.post( '/upload' , function ( req , res ) {
    if ( req.header( 'content-length' ) > 1 ) {
        res.send( 'limit' );
    } else {
        res.send( 'ok' );
    }
} );

然后我上传了一个2GB的文件,使用Chrome的网络面板查看时,发现时间线里面Sending花了近15秒,也就是说,这个我不会保存的文件占用了服务端15秒的时间来处理,这实在太浪费了,15秒以后,才从服务端返回了“limit”

这样显然是不行的。要怎么做,才能在文件上传前就能检测它的大小,一旦发现超过1字节,那服务端就立刻返回呢?

这个问题的关注点在后端,前端验证方案不在讨论之列。

3 回复

不能超过一个字节,那传什么? 楼主可以看下HTML5 中的 File API。 有对应的size属性。:)

这里的1字节只是作为一个例子。 另外,前端验证很容易绕过的,我需要的是一个服务端的解决方案

回到顶部