9

I used the following methode

HTML

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

JavaScript

var file = document.getElementById('loadfile').files[0];
alert( "name " +  file.name + "Size " +  file.size );

It works fine other browsers except IE :( How to get in IE ?

5
  • 4
    IE doesn't support File API. Commented Nov 22, 2012 at 11:41
  • 2
    caniuse.com/#feat=fileapi Commented Nov 22, 2012 at 11:42
  • Thanks all ... I also get the info from everywhere that IE doesn't support this feature :( I had found a great plugin for file upload blueimp.github.com/jQuery-File-Upload Commented Nov 22, 2012 at 11:54
  • You may be able to do it if you use Flash. Is Flash not an option? We use a Flash uploader that does get filesize, but I think what we have is a custom built one, not some publicly available Flash uploader. But the publicly available ones might have that functionality as well. We use the Flash uploader in IE only and go with HTML5/JS based uploader on the other browsers. Suggest you look into the same approach. Commented Mar 29, 2013 at 6:43
  • This works from IE 10 onwards, also check whether you have meta element. e.g. <meta http-equiv="x-ua-compatible" content="IE=9">. Use <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">instead Commented Mar 20, 2017 at 6:31

5 Answers 5

5

IE doesn't supply file size information I'm afraid. You might be able to use HTML5 File API with IE10, see here:-

Javascript to check filesize before upload in Internet Explorer

Sign up to request clarification or add additional context in comments.

Comments

1

you can do it like this using activeX

function getSize()
{
 var myFSO = new ActiveXObject("Scripting.FileSystemObject");
 var filepath = document.upload.file.value;
 var thefile = myFSO.getFile(filepath);
 var size = thefile.size;
 alert(size + " bytes");
}

see here for more detail;

how validate file size using HTML and Javascript on client side

Comments

1
document.getElementById('loadfile').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);
    }
}

see filddle

2 Comments

Works for browsers compatible with HTML5, but this does not work with IE9.
IE9 doesn't have file.size
0

IE up to version 9 does not support the file API which is needed to get the file size. IE10 does not support file size.

Comments

0

IE doesn't support File API

source : https://github.com/blueimp/jQuery-File-Upload/issues/147

have to use an ActiveX control to perform this action

function getSize()
{
 var myFSO = new ActiveXObject("Scripting.FileSystemObject");
 var filepath = document.upload.file.value;
 var thefile = myFSO.getFile(filepath);
 var size = thefile.size;
 alert(size + " bytes");
}

source: http://www.sencha.com/forum/showthread.php?196859-File-Upload-Field-IE-Safari-Opera-fileInput-error.&s=b124834725ae363759158268d91ac32c

1 Comment

I get "Automation server can't create object" trying to run that in a jquery onchange function.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.