【问题标题】:Get the uploading file size without activexobject?在没有activexobject的情况下获取上传文件的大小?
【发布时间】:2011-10-04 05:25:43
【问题描述】:

是否可以使用 java 脚本或不使用 activex 对象来获取上传文件的文件大小? 它应该与所有浏览器兼容。

【问题讨论】:

    标签: javascript html file-upload filesize


    【解决方案1】:

    兼容所有浏览器? - 没有解决方案

    兼容 firefox,chrome,safari,opera ?- 以下脚本

    document.getElementById("file_elem_id").files[0].size
    

    不适用于 IE8(尚未在 IE9 上测试)

    【讨论】:

    • 我正在使用 firefox 7 并且它为我工作。检查我之前评论中的链接
    • 在 ff 7.0.1 中获取未定义的错误消息。 document.getElementById("file_elem_id").files[0].size 这适用于 Chrome 和 FF
    【解决方案2】:

    让您知道 IE-9 或更低版本不支持 jQuery 文件 API。在这些情况下,我们必须通过创建 ActiveXObject 来检查文件大小,因为这是处理系统文件以在上传前获取文件大小的唯一方法。

    但是这里还有另一个问题,比如 ActiveX 需要在客户端机器上的浏览器上正确安装/启用/配置,否则将无法识别。因此,我有三种方法可以在这里获取文件大小:- 1)通过将整个文件传输到服务器并从那里返回文件大小来获取文件大小。 2)在客户端使用Silverlight、Flash之类的东西很容易找到。 3)当文件超过文件大小限制时,将文件以块的形式上传到服务器,然后向用户返回一条消息。

    在 jQuery 中获取文件大小(IE 10、FF、Chrome 浏览器支持)

    $('#fileInputID').change(function(){
            var file=this.files[0];
            alert(file.size||file.fileSize);
        })
    

    使用 ajax 获取文件大小,仅发出 HEAD 请求:

    var response = $.ajax({
    type: "HEAD",
    url: fileurl,// file url on server
    success: function () {
        alert("Size of file is " + request.getResponseHeader("Content-Length"));
      }
    });
    

    希望这会有所帮助。

    参考:- http://www.aspnetcodes.com/2012/07/example-to-get-file-size-before-upload.html

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 1970-01-01
      • 2013-08-26
      • 2011-10-18
      • 2013-05-19
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多