2013-11-22 5 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. Вы можете использовать lib как 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 получает размер! –

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

Я не пробовал работать с более старыми браузерами, но я думаю, что он будет хорошо работать со старыми браузерами. –

Смежные вопросы