获取没有activexobject的上传文件大小?

时间:2011-10-04 05:25:43

标签: javascript html file-upload filesize

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

让您知道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