如何在上传之前检索文件的大小?

时间:2009-02-13 19:17:55

标签: javascript file input filesize

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

编辑:somefileinputobject.files [0] .filesize在FF中工作,但不在IE中工作。

5 个答案:

答案 0 :(得分:2)

这是一个难题。你必须使用AJAX,并使用浏览器发送到服务器上的文件大小标题。

雅虎的UI库有一个工具来帮助解决这个问题。 YUI Uploader

答案 1 :(得分:0)

Javascript无法做到这一点。它会有严重的安全问题。也许flash可以。

答案 2 :(得分: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
}

但是这很容易被浏览器的安全设置或 使用其他浏览器或平台。

答案 3 :(得分:0)

无法使用Javascript对所有浏览器可靠地完成,但您可以从web.config

限制发布数据的总大小

答案 4 :(得分:0)

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

相关问题