366 Stimmen

Überprüfung der Dateigröße beim Hochladen mit JavaScript

Gibt es eine Möglichkeit zu überprüfen Dateigröße bevor ich sie mit JavaScript hochlade?

3voto

RedDragonWebDesign Punkte 1029

Ich bin auf diese Frage gestoßen, und die eine Codezeile, die ich brauchte, war in großen Codeblöcken versteckt.

Kurze Antwort: this.files[0].size

Übrigens: JQuery wird nicht benötigt.

2voto

Abhi Punkte 49

Ich verwende dieses Skript zur Validierung Datei Typ und Größe

 var _validFilejpeg = [".jpeg", ".jpg", ".bmp", ".pdf"];

    function validateForSize(oInput, minSize, maxSizejpeg) {
        //if there is a need of specifying any other type, just add that particular type in var  _validFilejpeg
        if (oInput.type == "file") {
            var sFileName = oInput.value;
            if (sFileName.length > 0) {
                var blnValid = false;
                for (var j = 0; j < _validFilejpeg.length; j++) {
                    var sCurExtension = _validFilejpeg[j];
                    if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length)
                        .toLowerCase() == sCurExtension.toLowerCase()) {
                        blnValid = true;
                        break;
                    }
                }

                if (!blnValid) {
                    alert("Sorry, this file is invalid, allowed extension is: " + _validFilejpeg.join(", "));
                    oInput.value = "";
                    return false;
                }
            }
        }

        fileSizeValidatejpeg(oInput, minSize, maxSizejpeg);
    }

    function fileSizeValidatejpeg(fdata, minSize, maxSizejpeg) {
        if (fdata.files && fdata.files[0]) {
            var fsize = fdata.files[0].size /1024; //The files property of an input element returns a FileList. fdata is an input element,fdata.files[0] returns a File object at the index 0.
            //alert(fsize)
            if (fsize > maxSizejpeg || fsize < minSize) {
                alert('This file size is: ' + fsize.toFixed(2) +
                    "KB. Files should be in " + (minSize) + " to " + (maxSizejpeg) + " KB ");
                fdata.value = ""; //so that the file name is not displayed on the side of the choose file button
                return false;
            } else {
                console.log("");
            }
        }
    }

<input type="file"  onchange="validateForSize(this,10,5000);" >

1voto

anson Punkte 67

Das können Sie versuchen fineuploader

Es funktioniert gut unter IE6 (und höher), Chrome oder Firefox

-2voto

Lilla Punkte 41

Wenn Sie den Ie 'Document Mode' auf 'Standards' setzen, können Sie die einfache javascript 'size' Methode verwenden, um die Größe der hochgeladenen Datei zu erhalten.

Setzen Sie den Ie 'Dokumentenmodus' auf 'Standards':

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

Verwenden Sie dann die Javascript-Methode "size", um die Größe der hochgeladenen Datei zu ermitteln:

<script type="text/javascript">
    var uploadedFile = document.getElementById('imageUpload');
    var fileSize = uploadedFile.files[0].size;
    alert(fileSize); 
</script>

Das funktioniert bei mir.

-2voto

MD SHAYON Punkte 6992

Der einfache Weg ist

const myFile = document.getElementById("fileUpload").files[0]; 
            if (myFIle.size > 2097152) // 2 MiB for bytes.
            {
                alert("File size must under 2MiB!");
                return;
            }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X