Próbuję jeździć na fali HTML5, ale mam mały problem. Przed HTML5 sprawdzaliśmy rozmiar pliku za pomocą Flasha, ale teraz trend polega na unikaniu używania Flasha w aplikacjach internetowych. Czy istnieje sposób, aby sprawdzić rozmiar pliku po stronie klienta za pomocą HTML5?
javascript
html
file-upload
Khaled Musaied
źródło
źródło
Zaakceptowana odpowiedź jest w rzeczywistości poprawna, ale musisz powiązać ją z detektorem zdarzeń, aby aktualizował się po każdej zmianie wejścia pliku.
document.getElementById('fileInput').onchange = function(){ var filesize = document.getElementById('fileInput').files[0].size; console.log(filesize); }
Jeśli korzystasz z biblioteki jQuery, poniższy kod może się przydać
$('#fileInput').on('change',function(){ if($(this).get(0).files.length > 0){ // only if a file is selected var fileSize = $(this).get(0).files[0].size; console.log(fileSize); } });
Biorąc pod uwagę, że konwersja rozmiaru pliku do wyświetlenia, w którym kiedykolwiek metryka, zależy od Ciebie.
źródło
.files
: jsfiddle.net/edxvo4wa (sam to odkryłem, kiedy wymyślałem rozwiązanie - działa, jeśli zmienisz je nadocument.getElementById
).Interfejs API HTML5 fie obsługuje sprawdzanie rozmiaru pliku.
Przeczytaj ten artykuł, aby uzyskać więcej informacji o plikach API
http://www.html5rocks.com/en/tutorials/file/dndfiles/
<input type="file" id="fileInput" /> var size = document.getElementById("fileInput").files[0].size;
podobnie API pliku podaje nazwę i typ.
źródło
Osobiście wybrałbym ten format:
$('#inputFile').bind('change', function(e) { var data = e.originalEvent.target.files[0]; // and then ... console.log(data.size + "is my file's size"); // or something more useful ... if(data.size < 500000) { // what your < 500kb file will do } }
źródło
„nie ma prostego rozwiązania dla wielu przeglądarek, aby to osiągnąć”: Wykrywanie rozmiaru przesyłanych plików po stronie klienta?
źródło