上传文件前检查文件大小

3
有没有办法在使用JavaScript上传文件之前检查文件大小?
3个回答

6

仅适用于某些浏览器。W3C提供了一个新的API,允许客户端JavaScript在浏览器中极其有限地访问文件系统。它通过要求用户在<input type='file'>字段中选择文件并明确允许您访问该文件来工作。然后,您可以查询其属性(不包括完整路径),甚至直接读取它而无需将其发送到服务器。

文件API由Mozilla发起,并受Firefox 3.6及更高版本的支持(早期版本支持较早版本)。Chrome和Safari也支持它,我想。这是Mozilla的Arun Ranganathan的一篇文章

因此,您可以尝试使用它,如果存在,则很好;如果不存在,则无法在客户端执行此操作。

当然,您也需要在服务器上强制执行任何文件大小限制,而不管您是否可以在客户端执行。客户端验证始终是一种便利,而不是保护服务器的替代方法。请保留HTML标签。

2
不,JavaScript无法访问文件系统。如果您可以使用Flash或Silverlight小工具来上传文件,则可以实现此操作。

JavaScript现在确实可以访问文件系统了!在大多数主流浏览器上。 - T.J. Crowder
那很酷。不幸的是,“大多数主要浏览器”似乎不包括IE(令人惊讶,我知道...)。因此,对于大多数应用程序,答案现在仍然是否定的。 - Ray
是的,目前还不支持IE - 但我们正在讨论非常早期的阶段,而且IE9的过程看起来与微软以往的标准方法有很大不同,所以希望如此。我认为大多数应用程序的答案并不是“不”,而是“如果有就使用它,但如果没有就做好准备”,如果你想一想,这在当前的Web标准中也是正确的。 :-) 而且由于您无论如何都需要服务器端验证... - T.J. Crowder
有道理 - 我可以在几个地方使用文件大小检查 - 我想我会试一试。 - Ray

0

不行。

这是一个真正麻烦的问题。你能做的最好的事情就是在接收端设置文件大小限制,并提供足够的验证,以便在用户尝试上传过大的内容时通知他们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接