如何做到在文件上传前就进行大小检测?
例如我想做一个文件上传的接口,这个接口限制文件上传大小不能超过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字节只是作为一个例子。 另外,前端验证很容易绕过的,我需要的是一个服务端的解决方案