# Upload Dateigrösse ermitteln



## Thomas_Jung (16. Mai 2012)

Hallo

Ich habe folgendes Script im Netz gefunden.



```
<script type='text/javascript'>


var bytesToSize = function( bytes ){
	if( isNaN( bytes ) ){ return; }
	var units = [ ' bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB' ];
	var amountOf2s = Math.floor( Math.log( +bytes )/Math.log(2) );
	if( amountOf2s < 1 ){
		amountOf2s = 0;
	}
	var i = Math.floor( amountOf2s / 10 );
	bytes = +bytes / Math.pow( 2, 10*i );
 
	// Rounds to 3 decimals places.
        if( bytes.toString().length > bytes.toFixed(3).toString().length ){
            bytes = bytes.toFixed(3);
        }
	return bytes + units[i];
};


function showFileSize() {
    var input, file;

    if (typeof window.FileReader !== 'function') {
        bodyAppend("p", "The file API isn't supported on this browser yet.");
        return;
    }

    input = document.getElementById('fileinput');
    if (!input) {
        bodyAppend("p", "Um, couldn't find the fileinput element.");
    }
    else if (!input.files) {
        bodyAppend("p", "This browser doesn't seem to support the `files` property of file inputs.");
    }
    else if (!input.files[0]) {
        bodyAppend("p", "Please select a file before clicking 'Load'");
    }
    else {
        file = input.files[0];
        bodyAppend("p", "File " + file.name + " is " + bytesToSize(file.size) + " bytes in size");
    }
}

function bodyAppend(tagName, innerHTML) {
    var elm;

    elm = document.createElement(tagName);
    elm.innerHTML = innerHTML;
    document.body.appendChild(elm);
}
</script>

<form action='#' onsubmit="return false;">
<input type='file' id='fileinput' onchange='showFileSize();'>
<input type='button' id='btnLoad' value='Load'>
</form>
```

Das Script funktioniert aber nur mit einem Upload.

Nun möchte ich mehrere Datein uploaden, und die Gesammtgrösse am schluss anzeigen.

z.b.

(file1) Grösse  1,5 MB 
(file2) Grösse  0,5 MB 
(file3) Grösse  2,0 MB

         Gesamt: 4,0 MB 

Ist so etwas schon irgendwo realisiert worden oder kann mir jemand dabei helfen ?

Gruß Thomas


----------



## Godstyle (16. Mai 2012)

kannst du recht einfach lösen 


```
$file1 = $_FILES['file1']['size'];
$file2 = $_FILES['file2']['size'];
$file3 = $_FILES['file3']['size'];

$file_size = $file1 + $file2 + $file3;
```

ungetestet aber sollte klappen


----------



## erik s. (22. Mai 2012)

Du hast dem OnChange-Handler schon deine Funktion zugeordnet. Nun musst du dieser bloß noch als Parameter das File-Input-Feld übergeben, deren Wert du berechnen möchtest.

```
function showFileSize(input) {
    var file;
...
}
```
und

```
<input type='file' id='fileinput' onchange='showFileSize(this);'>
```

Gruß


----------

