Ich glaube du wirst dabei nicht drumherumkommen, auf das Flash zu verzichten.
Das hier ist out-of-the-box und habe es nicht testen können.
Hier ist ein Beispiel für eine mögliche Implementierung mit der HTML5 File API und XMLHttpRequest.
Ich habe es selbst nicht testen können, vielleicht bekommst du es ja zum laufen:
<input type="file" id="fileInput" multiple>
<button id="uploadButton">Durchsuchen & Hochladen</button>
<div id="progressContainer"></div>
<script>
document.getElementById('uploadButton').addEventListener('click', function() {
var files = document.getElementById('fileInput').files;
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
formData.append('file[]', files[i]);
}
formData.append('PHPSESSID', '<?php echo session_id(); ?>');
formData.append('user_id', '{user_id_upload_multi}');
formData.append('max_thumb_height', '{max_thumb2_height}');
formData.append('max_thumb_width', '{max_thumb2_width}');
formData.append('auto_thumbnail_quality', '{auto_thumbnail2_quality}');
formData.append('thumbnail_proportions', '{thumbnail_proportions}');
formData.append('direct_upload', '{direct_upload}');
formData.append('cat_id', '<?php echo $cat_id; ?>');
var xhr = new XMLHttpRequest();
xhr.open('POST', 'multiupload_2.php', true);
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
var percent = (e.loaded / e.total) * 100;
document.getElementById('progressContainer').innerHTML = percent + '% hochgeladen';
}
};
xhr.onload = function() {
if (xhr.status === 200) {
// Upload erfolgreich
alert('Upload abgeschlossen');
} else {
// Upload fehlgeschlagen
alert('Fehler beim Hochladen');
}
};
xhr.send(formData);
});
</script>