Upload Dateigrösse ermitteln

Thomas_Jung

Erfahrenes Mitglied
Hallo

Ich habe folgendes Script im Netz gefunden.


PHP:
<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

upload.jpg
 
kannst du recht einfach lösen ;)

PHP:
$file1 = $_FILES['file1']['size'];
$file2 = $_FILES['file2']['size'];
$file3 = $_FILES['file3']['size'];

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

ungetestet aber sollte klappen
 
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.
Code:
function showFileSize(input) {
    var file;
...
}
und
Code:
<input type='file' id='fileinput' onchange='showFileSize(this);'>

Gruß
 

Neue Beiträge

Zurück