我的网络应用中有一个文件输入标记。我想在将文件发送到服务器之前检查文件是否太大。当然,我还有验证服务器端。有没有办法用JavaScript做到这一点?它必须在IE7 +和FF3 +中工作。谢谢。
编辑:somefileinputobject.files [0] .filesize在FF中工作,但不在IE中工作。
答案 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时发生的异常。