web-dev-qa-db-fra.com

Comment obtenir la taille du fichier côté client en utilisant JavaScript dans IE?

J'ai utilisé la méthode suivante

HTML

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

JavaScript

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

Cela fonctionne très bien avec les autres navigateurs sauf IE :( Comment entrer dans IE?

9
raki

IE ne fournit pas d'informations sur la taille du fichier, j'en ai bien peur. Vous pourrez peut-être utiliser l'API de fichier HTML5 avec IE10, voir ici: -

Javascript pour vérifier la taille du fichier avant de le télécharger dans Internet Explorer

5
Lloyd

vous pouvez le faire comme ça en utilisant 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");
}

voir ici pour plus de détails;

comment valider la taille du fichier en utilisant HTML et Javascript côté client

1
rahul
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);
    }
}

voir filddle

1
Harish Singh

Jusqu'à la version 9, IE ne prend pas en charge le API de fichier nécessaire pour obtenir la taille du fichier. IE10 ne supporte pas la taille de fichier.

0
Beat Richartz

IE ne prend pas en charge l'API de fichier

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

devez utiliser un contrôle ActiveX pour effectuer cette 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

0
Mahmoud Farahat