2012-11-22 11 views
8

użyłem następujące methodeJak uzyskać rozmiar pliku od klienta za pomocą javascript w IE?

HTML

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

JavaScript

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

Działa drobne innych przeglądarkach z wyjątkiem IE :( Jak dostać w IE?

+4

IE nie obsługuje File API. – undefined

+2

http://caniuse.com/#feat=fileapi – adeneo

+0

Dzięki wszystkim ... Też dostaję informację zewsząd, że IE nie obsługuje tej funkcji :( Znalazłem świetną wtyczkę do przesyłania plików http://blueimp.github.com/jQuery-File-Upload/ – raki

Odpowiedz

0

IE do wersji 9 nie obsługuje file API które są potrzebne, aby uzyskać rozmiar pliku. IE10 nie obsługuje rozmiaru pliku.

1

można to zrobić jak to przy użyciu 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"); 
} 

zobaczyć tutaj bardziej szczegółowo;

how validate file size using HTML and Javascript on client side

0

IE nie obsługuje API File

źródło: https://github.com/blueimp/jQuery-File-Upload/issues/147

musiał użyć kontrolki ActiveX, aby wykonać tę czynność

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"); 
} 

źródło: http://www.sencha.com/forum/showthread.php?196859-File-Upload-Field-IE-Safari-Opera-fileInput-error.&s=b124834725ae363759158268d91ac32c

+6

Otrzymuję komunikat "Serwer automatyzacji nie może utworzyć obiektu", próbując uruchomić go w funkcji zamiany jquery. – Will

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

zobacz filddle

+0

Działa w przeglądarkach zgodnych z HTML5, ale to nie działa z IE9. – Vakey

+0

IE9 nie ma pliku 'file.size' – Stiger

Powiązane problemy