2013-11-22 413 views
2

我用这个代码检查文件类型上传前如何检查文件大小在JavaScript

// - coursesweb.net 
    // get the file name and split it to separe the extension 
    var name = el.value; 
    var ar_name = name.split('.'); 

,但现在我想使用这个代码来获得文件的大小,我该怎么办?

code from this site

+0

http://stackoverflow.com/questions/3717793/javascript-file-upload-size-validation – hammus

回答

2

如果浏览器支持File API

if (typeof FileReader !== "undefined") { 
    var size = document.getElementById('file_input_field_id').files[0].size; 
} else { 
    console.log("File API is not supported"); 
    var size = -1; 
} 

如果您想在客户端无文件API获取文件大小,需要使用flash。您可以使用像FileAPI.js这样的库

+0

的浏览器不支持的文件API。 – user2979339

1

您可以像这样检查文件大小。

比方说你的HTML是:

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

var size = document.getElementById('file').files[0].size; 
+0

可以给我举个例子,谢谢^ _^ – user2979339

+0

@ user2979339这是一个例子!你的输入字段有一个id文件,var size获取大小! –

12
You can check the filesize by files[0].size 

尝试以下操作:

$('#myFile').bind('change', function() { 

    //this.files[0].size gets the size of your file. 
    alert(this.files[0].size); 

}); 
+1

+1 upvoted,因为这是一个合法的答案,downvote没有评论是不可接受的 – hammus

4

试试这个让文件大小

document.getElementById('fileid').addEventListener('change', checkFile, false); 

function checkFile(e) { 
    var file_list = e.target.files; 
    for (var i = 0, file; file = file_list[i]; i++) { 
     var fileExtension = file.name.split('.')[file.name.split('.').length - 1].toLowerCase(); 
     var iConvert = (file.size/1024).toFixed(2); 

     txt = "File type : " +fileExtension + "\n"; 
     if(file.size > (1024 * 1024)){ 
      txt += "Size: " + (file.size/(1024*1024)).toFixed(2) + " MB \n"; 
     } else { 
     txt += "Size: " + (file.size/1024).toFixed(2) + " KB \n"; 
     } 
     alert(txt); 
    } 
} 

fiddle

+0

这是兼容旧版浏览器? – DannyG

+0

我没有尝试使用旧版浏览器,但我认为它可以在旧版浏览器中正常工作。 –

相关问题