代码之家  ›  专栏  ›  技术社区  ›  geowa4

如何在上载文件之前检索其大小?

  •  6
  • geowa4  · 技术社区  · 15 年前

    我的web应用程序中有一个文件输入标签。在将文件发送到服务器之前,我想检查一下文件是否太大。当然,我还有验证服务器端。用JavaScript有什么方法可以做到这一点吗?它必须在IE7+和FF3+中工作。谢谢您。

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

    5 回复  |  直到 14 年前
        1
  •  2
  •   Jeremy DeGroot    15 年前

    这是个难题。您必须使用Ajax,并在POST请求时使用浏览器发送给服务器的文件大小头。

    雅虎的用户界面库有一个工具可以帮助解决这个问题。 YUI Uploader

        2
  •  0
  •   Alex Wayne    15 年前

    javascript不能这样做。它会有严重的安全问题。也许闪光灯可以。

        3
  •  0
  •   Chris Ballance    15 年前

    对于所有浏览器,不能可靠地使用javascript,但是可以限制来自 web.config

        4
  •  0
  •   cgreeno    15 年前

    简短回答:不,您应该在服务器上处理这个问题。

    答案很长:不可靠。有了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
    }
    

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

        5
  •  0
  •   Jim Petkus    15 年前

    如果您使用的是传统的文件输入控件,那么您实际上没有太多的选项。您不能在客户端检查它,它将在您有机会检查它的服务器端之前达到您配置的maxrequestlength。但是,您可以捕获超过maxrequestlength时发生的异常。