如何使用 JavaScript 验证文件的大小?

Posted

技术标签:

【中文标题】如何使用 JavaScript 验证文件的大小?【英文标题】:How do I validate the size of a file using JavaScript? 【发布时间】:2010-03-29 04:40:14 【问题描述】:

当点击页面上的上传按钮时...想要检查在文件上传控件中选择的文件大小并在文件大小超过时停止上传按钮的回发...使用 jquery/javascript 的方法是什么?

【问题讨论】:

【参考方案1】:

虽然这不是一种万无一失的方法,但某些浏览器会检查您是否有一个隐藏的输入元素来指定最大文件大小,如下所示:

<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />

[编辑]似乎这种类型的检查从未被主要浏览器之一实际实现过。只是希望他们这样做。

在这种情况下,您只能使用 flash、silverlight、java 或其他一些客户端插件来限制文件上传大小(客户端)。

【讨论】:

哪一个没有实现? @Bruno:哪一个实现了它? @John Saunders,我不知道,你为什么问我? @Bruno:因为你问,“不是由哪个实现的?”,好像你觉得它在许多浏览器上都实现了。我想知道哪些浏览器实现了它。 @John Saunders / @Bruno Reis:不幸的是,他们都不支持它。浏览器插件是唯一的方法。【参考方案2】:

您不能,您必须使用服务器端 php 或 ASP[.NET] 来执行此操作。 如果可能的话,破解者会窃取文件。

【讨论】:

【参考方案3】:

没有办法在纯 Javascript 解决方案中实现这一点,因为出于安全原因,Javascript 无法访问您的本地文件系统。做你想做的事的唯一万无一失的方法是在服务器上。根据您使用的技术,您可能能够在请求仍在发送时拦截该请求并根据 Content-length 标头将其终止。

【讨论】:

以上是关于如何使用 JavaScript 验证文件的大小?的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascript/jquery 验证文件上传 [重复]

JavaScript 文件上传大小验证

如何在不传输整个文件的情况下限制使用 JavaScript(或 Java)上传的文件的大小?

请问如何用javascript判断比较两个文本框输入的日期值大小(在JSP文件中)

如何使用 JavaScript 访问文件元素的文件属性

Javascript 文件大小验证限制为 2 个小数位 [重复]