客户端使用HTML5检查文件大小?

时间:2010-11-06 09:26:36

标签: javascript html5 file-upload

我正在尝试使用HTML5,但我遇到了一个小问题。在HTML5之前,我们使用flash检查文件大小,但现在趋势是避免在Web应用程序中使用Flash。有没有办法使用HTML5检查客户端的文件大小?

5 个答案:

答案 0 :(得分:120)

这很有效。将输入更改时,将其放在事件监听器中。

if (typeof FileReader !== "undefined") {
    var size = document.getElementById('myfile').files[0].size;
    // check file size
}

答案 1 :(得分:26)

接受的答案实际上是正确的,但您需要将其绑定到事件侦听器,以便在文件输入更改时更新。

document.getElementById('fileInput').onchange = function(){
    var filesize = document.getElementById('fileInput').files[0].size;
    console.log(filesize);    
}

如果您正在使用jQuery库,那么以下代码可能会派上用场

$('#fileInput').on('change',function(){
  if($(this).get(0).files.length > 0){ // only if a file is selected
    var fileSize = $(this).get(0).files[0].size;
    console.log(fileSize);
  }
});

鉴于将fileSize转换为显示的度量标准由您决定。

答案 2 :(得分:7)

HTML5 fie api支持检查文件大小。

阅读本文以获取有关文件api的更多信息

http://www.html5rocks.com/en/tutorials/file/dndfiles/

<input type="file" id="fileInput" />


var size = document.getElementById("fileInput").files[0].size;

类似的文件API提供名称和类型。

答案 3 :(得分:3)

就个人而言,我会选择这种格式:

    $('#inputFile').bind('change', function(e) {
      var data = e.originalEvent.target.files[0];
      // and then ...
      console.log(data.size + "is my file's size");
      // or something more useful ...
      if(data.size < 500000) {
        // what your < 500kb file will do
      }
    }

答案 4 :(得分:2)

“没有简单的跨浏览器解决方案来实现这一目标”:Detecting file upload size on the client side?