Skip to content
This repository has been archived by the owner on Aug 22, 2022. It is now read-only.

关于代码中的 opts.fileNumLimit >> 0 #232

Closed
lin-xi opened this issue Jun 12, 2014 · 2 comments
Closed

关于代码中的 opts.fileNumLimit >> 0 #232

lin-xi opened this issue Jun 12, 2014 · 2 comments

Comments

@lin-xi
Copy link

lin-xi commented Jun 12, 2014

有好几处有这个代码,但这个是有问题的。

本人水平一般,>>0不知道是什么意思,百度了一下,找到 >>0 意思好像是要取整,是不是还顺便当为 undefined, null l时给赋成0。 可是这个装逼的方法没装好。

我的opts.fileNumLimit 为4G,4000_1024_1024 >> 0 成了-100663296,所以上传任何一个文件都提示 Q_EXCEED_NUM_LIMIT。

为什么 4000_1024_1024 >> 0 成了-100663296,我还不知道。

Math.round(4000_1024_1024)
parseInt(4000_1024_1024)
这两个方法都是可以的

装逼是要技术的,莫瞎装,小心雷劈啊。

@2betop
Copy link
Contributor

2betop commented Jun 12, 2014

受教了,不过我这块完全是出于性能考虑,运行这个jspref一眼就可以看出来 位操作比 parseInt 快出 40%

此类位操作同是也是类型装换操作,考虑到用户如果没有设置这个参数,默认就是 undefined, 如果让 undefined 与数字对比是得不到正确结果的。 位操作自动转换成 uint. uint 是 4 个字节,导致大于 2 的 31 此方的数据转换后变成负数,这个确实是没有考虑到会上传如此大的文件。

@2betop
Copy link
Contributor

2betop commented Jun 12, 2014

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants