AngularJS:有没有办法获得文件大小?

时间:2018-02-08 12:18:16

标签: javascript angularjs filereader

我正在实施一项检查,我不想上传大小超过4MB的图片。我正在使用file readernew image()。我的图像大小和宽度。但是我怎样才能获得文件大小。

function previewImage(element) {
  var reader = new FileReader();

  reader.onload = function (event) {
    seAddArtist.imageSource = event.target.result;
    $scope.$apply();
  };
  // when the file is read it triggers the onload event above.
  reader.readAsDataURL(element.files[0]);
}


var img = new Image();
img.onload = function () {
  alert(this.width + 'x' + this.height);
}

我正在实施这两个组合,但我如何检查图像的大小?

4 个答案:

答案 0 :(得分:5)

FileReaderFileReader API)本身不提供文件的大小。您需要使用filefile API)代替:

function previewImage(element) {
  var reader = new FileReader();

  reader.onload = function(event) {
    seAddArtist.imageSource = event.target.result;
    $scope.$apply();
  };

  // when the file is read it triggers the onload event above.
  reader.readAsDataURL(element.files[0]);

  //log / access file size in bytes
  console.log(element.files[0].size + ' Bytes');

  //log / access file size in Mb
  console.log(element.files[0].size/1024/1024 + ' MB');

  if (element.files[0].size/1024/1024 > 4) {
   console.log('file is bigger than 4MB);
  }
}

答案 1 :(得分:0)

这可能是你想要的:

var size = files[0].size;

答案 2 :(得分:0)

您可以在提交之前检查文件大小:

<!doctype HTML>
<html>
<head>
<script>
    function checkFileSize() {
        var size = document.getElementById("fileSelector").files[0].size;
        alert("file size: " + size);
    }
</script>
</head>
<body>
    <input id="fileSelector" type="file" onchange="checkFileSize()"/>
    <input type="submit" />
</body>
</html>

答案 3 :(得分:0)

这是获取文件大小的工作代码。您将获得以KB为单位的文件大小。

<input id="file" type="file">
<img id="filerendered" src="">

并在脚本标记

document.getElementById('file').onchange = function (event) {
var targetn = event.target || window.event.srcElement,
    files = targetn.files;

// FileReader here
if (FileReader && files && files.length) {
    var thisReader = new FileReader();

    alert("your file size "+ (files[0].size)/1024 + "kb")

    thisReader.onload = function () {
        document.getElementById("filerendered").src = thisReader.result;
    }
    thisReader.readAsDataURL(files[0]);
}

// for Not supported case
else {
    // not supported
}
}