6

我的网络应用程序中有一个文件输入标签。我想在将文件发送到服务器之前检查文件是否太大。当然,我仍然有验证服务器端。有没有办法用 JavaScript 做到这一点?它必须在 IE7+ 和 FF3+ 中工作。谢谢你。

编辑: somefileinputobject.files[0].filesize 适用于 FF,但不适用于 IE。

4

5 回答 5

2

这是一个难题。您必须使用 AJAX 来完成,并使用浏览器在 POST 请求中发送到服务器的文件大小标头。

雅虎的 UI 库有一个工具可以帮助解决这个问题。 YUI 上传器

于 2009-02-13T19:22:51.560 回答
0

Javascript 无法做到这一点。这将有严重的安全问题。也许闪存可以。

于 2009-02-13T19:19:49.620 回答
0

简短的回答:不,你应该在服务器上处理这个。

长答案:不可靠。使用 IE,您可以执行以下操作:

function checkSize(filespec) {
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.size;
// Do something with var s
}

但这很容易受到浏览器的安全设置或使用其他浏览器或平台的影响。

于 2009-02-13T19:21:04.483 回答
0

无法对所有浏览器使用 Javascript 可靠地完成,但您可以限制发布数据的总大小web.config

于 2009-02-13T19:21:31.143 回答
0

如果您使用传统的文件输入控件,您真的没有很多选择。您无法在客户端检查它,它会在您有机会检查服务器端之前达到您配置的 maxRequestLength。但是,您可以捕获超出 maxRequestLength 时发生的异常。

于 2009-02-13T19:23:15.087 回答